我學到了如下幾點php
01Linux系統介紹
02系統安裝,密碼啊破解
03Linux經常使用命令
04LAMPhtml
01LINUXmysql
windows: win03 8 12 16 19
配置不繁瑣linux
Linux:redhat,centos(紅帽社區版),Ubuntu server,susenginx
unix:金融機構,證券,銀行,根據硬件配套區賣的git
比較出名的lamp平臺:Linux+apache+MySQL+php
lnmp平臺:Linux+nginx+mysql+phpgithub
Liux重要的東西(內核):
在Linux提權的時候,內核exp利用,kernel
例如:內核2.6.32 就去百度谷歌分析發現該內核版本的漏洞進行本地提權。
查詢漏洞的網站①:exploit-db.com,windows和Linux都有
exploit-db.com:該網站發佈了4個類型的漏洞
dos
local:本地提權
remote:遠程代碼執行,遠程漏洞
webapps:web漏洞
查詢漏洞的網站②:github
還有③:用工具包去提權web
Linux常見發行版本:
RedHat Linux 服務器
centos 服務器
SuSE Linux 服務器
Ubuntu Linux 服務器
Mandrake Linux
Caldera Linux
Turbolinux
Debian GNU/Linux
Gentoo Linux
Linpus Linux
紅旗 Liunx 服務器 面試
Kali 基於 debian 發行的sql
Linux的優勢:
開源:全世界的安全人員都能去測試系統
免費
穩定:刷新不會卡,安裝不重啓
安全:病毒少
高性能
如何 學習Linux
從命令開始打好基礎
選擇一本好書
養成命令下工做的習慣
學習shell命令解釋器
不要死記硬背,多實戰
學會使用文檔
在Linux論壇得到幫助
學習專業英文
PART 2: Linux安裝、密碼破解
系統安裝搭建:
內核版本的區分:
xx.yy.zz
2.5.7:2是主版本號,5是次版本號,7是補丁次數
主版本號:表明內核是哪一個版本
次版本號:表明內核是開發版本仍是穩定版本
奇數開發版本,偶數穩定版本
磁盤分區標識:
Linux中將硬盤,分區等設備均表示爲文件:
目前全部的設備都是使用hd(表示IDE設備),sd(表示SCSI設備)
/dev/hda5
/dev/ 硬件設備所在的目錄,硬盤光驅
hd,sd:根據硬盤接口來定的
a:硬盤的順序號以字母a,b,c表示
5表明分區的順序號:1.2.3.4.5
硬盤分區結構:
一塊硬盤能夠分爲4個主分區,前四個數字都是主分區
第一個邏輯分區都是從5開始計數的
一個邏輯分區要佔一個主分區用來擴展分區
文件系統類型:
Linux中默認使用的文件系統類型:
EXT4,第3代擴展(Extended)文件系統
SWAP,交換文件系統
Linux支持的其餘文件系統類型
FAT16,FAT32,NTFS windows系統盤就是NTFS的
XFS,JFS
小結,請思考
01:Linux內核版本號的命名有什麼特色
答:hd,sd是根據硬盤接口來定的,a就表示硬盤的順序號,數字表示分區的順序號
第2塊SCSI硬盤的第3個邏輯分區如何表示
答: /dev/sdb7
RHEL6默認使用的文件系統是什麼類型
答:除了SWAP之外均可以使用,例如EXT4
安裝RHEL6系統:
安裝步驟
插入RHEL6安裝光盤,引導安裝程序
設置主機引導設備爲光盤驅動器
從安裝光盤啓動主機
檢測安裝光盤的完整性
配置安裝程序
選擇安裝過程顯示語言、鍵盤類型、初始化磁盤、分區
設置網絡地址、系統時區、管理員口令
定製要安裝的軟件包 複製文件並完成安裝過程
需15~30分鐘
新建虛擬機---典型---稍後安裝操做---名稱rhel6.2---路徑---E盤-虛擬-rhel62---給20g--
虛擬設置,去掉打印機之類的節省資源,內存2g---DVD鏡像---rhel-server-6.2---
肯定開啓---第一個(安裝升級現有操做系統)---檢測no----簡體中文---美式鍵盤---Basicxxx(普通磁盤)
---丟棄全部磁盤---主機名x.com---上海時區---管理員密碼123123---create custom layout(建立一個分區安裝)---選擇分區---建立---掛載點/boot(負責引導裝載)---大小200mb
空閒分區---掛載點不選---文件系統類型swap---大小2048---肯定
空閒建立----掛載點:/---ext4---使用全部的空間---肯定---下一步---格式化---寫入改變的磁盤---改設備的時候不要插u盤-
服務器:最小---如今定製---裝桌面kde(暫時)x窗口---開發(開發工具)---下一步等待安裝
從新引導---下一步啓動---前進---不用建立普通用戶---前進---完成---密碼登陸
進去後沒法適應虛擬機大小,因此,先在選項列表安裝虛擬機工具。
虛擬機工具下載完成後
先設置一下字體大小粗體
桌面下右鍵運行命令---設置---外觀---編輯字體,加粗
虛擬機工具安裝: 否則沒法適應大小
df -T 查看掛載的位置
mount /dev/sr0 /media 掛載到media目錄下(只讀)
ls /media 查看目錄下的文件
cd /media 進入media目錄
tar zxvf VMwareTOOS補全鍵 -C /root 解壓該文件到root
cd 進入系統目錄
clear 清屏
cd wmware-tools-distrib/ 進入該目錄
ls查看文件
./wmware-install.pl (安裝程序)
問的問題回車默認
安裝完成後reboot(重啓下)
仍是安裝失敗!!
打開Red Hat Enterprise Linux6
修改命令行的字體大小
重點!!登陸密碼破解
不知道服務器密碼狀況下
e e 空格 s b
passwd
reboot
一、在開機自檢後,出現grub引導界面時,按E鍵進入編輯模式
二、把光標移到帶有「kernel」字樣的那一行,而後按E鍵編輯
三、在末尾輸入:空格 s 回車不要動
4. b鍵進入打印模式
5.passwd
6.輸入新的密碼:qwertyu qwertyu
7.reboot重啓
黑客爲何會改本身服務器密碼?
由於可以增長跟多的控制權限時間
Linux 沒有C盤,D盤,E盤,他的分區能夠理解爲目錄分區
全部的目錄都在根下,全部的分區也都在根下
bin:普通用戶管理員都能執行的命令
dev:磁盤硬盤存儲的
home:存放用戶加目錄,猶如windows下的user目錄
lost+found:至關於掛載到硬盤上的東西
mut: 用來掛載光驅用的
media:用來掛載光驅用的,光驅不能掛載,要使用必須複製到media下
proc:開機以前不存在,是開機以後生成的系統臨時文件
sbin:是用來存放root(管理員)所執行的系統命令的,sbin裏的命令是普通用戶沒法執行的
重點!!!但有一種權限叫suid,做用是嫁接提權
例如: ①文件A被賦予suid權限只有root權限才能使用。
②誰調用A文件誰就是全部者,文件A原來的全部者是root
③普通用戶xy經過命令行給A文件發送指令建立一個用戶,這時候A文件時按照root全部者權限去執行的。
④只有設置suid權限的才能這樣操做
哪些有suid權限呢?例如nmap能調用bash來執行命令,這時候權限就是root
srv:存放一些服務的
tmp:放一些臨時文件,這個目錄下擁有X編譯權限,根目錄下並無x編譯權限
重點:好比要提權
例如:uname -r 查看內核
2.6.32內核
找到利用髒牛 a.c
li用webshell把a.c上傳到根目錄
在用根目錄命令拷貝到/tmp下
在/tmp進行gcc a.c進行編譯,生成a.out
運行./a.out
var:放些日誌文件,網站根目錄源代碼的
selinux:服務防護的目錄
sys:存放系統文件
usr:重要,外部源代碼會放在usr,至關於windows的program files
如何推理linux的根目錄:
例如使用的lamp平臺
apache中間件
有數據庫,要不放在/usr/lpcal/ 要不就放在/usr/src/下
在命令行執行:select @@basedir;能夠看到mysql數據庫的安裝路徑
假設:安裝路徑在/usr/local/mysql-5.5.1/
那他的apache就會在/usr/local/apache/conf/http.conf,配置文件也在這裏
在有權限的狀況下,讀取配置文件http.conf裏的dirctoryroot /var/www/html/ 經過讀取配置文件找到根目錄的信息
boot:存放linux裝載程序的
etc:存放配置文件的
lib:庫文件
opt:存放外部的應用程序
root:管理員目錄
小結:
請思考: 根目錄下包括哪些常見子目錄?做用是什麼?
命令行提示符中「#」表示什麼意思?
答:#表明管理員,系統識別管理員是經過#來識別的,普通用戶是$。能夠經過id來查詢是不是管理員,若是是0是管理員,500是普通用戶
RHEL6中默認安裝的桌面環境是什麼?
答:kde界面,gnome(系統默認)
如何從字符界面切換到圖形界面?
答:shift+ctrl+f1
PART 3:Linux經常使用命令
Linux命令的分類
Linux命令
用於實現某一類功能的指令或程序
命令的執行依賴於解釋器程序(例如:/bin/bash)
Linux命令的分類
內部命令:屬於Shell解釋器的一部分
外部命令:獨立於Shell解釋器以外的程序文件 ,安裝應用程序產生的命令,大部分是實現功能的
Linux命令行格式:
Linux命令的通用命令格式
命令字 [選項] [參數]
選項及參數含義
選項:用於調節命令的具體功能
以 「-」引導短格式選項(單個字符),例如「-l」
以「--」引導長格式選項(多個字符),例如「--color」
多個短格式選項能夠寫在一塊兒,只用一個「-」引導,例如「-al」
參數:命令操做的對象,如文件、目錄名等
Linux系統命令重要:
uname 查看系統內核信息 -r查看內核版本號 -a 顯示詳細信息 提權重要
hostname 查看或臨時修改主機名稱 修改:hostname 123.com 內網分析會用到
ifconfig 查看系統ip網卡信息, eth0本地鏈接信息。 lo迴環接信息,檢查tcpip是否正常工做
dhclient eth0 從新獲取ip信息
cat /proc/cpuinfo 查看系統cpu信息 面試會考
cat /proc/meminfo 查看系統內存信息 面試會考
halt 關機
reboot 重啓
pwd 查看工做目錄 查看目前所在路徑 上傳文件的時候會用到
cd 切換目錄
cd ..返回上一級
cd - 後退
du 統計目錄及文件空間佔用狀況 -sh統計目錄大小 例如:du -sh /etc 意義文件太大會被管理員發現。
useradd:建立用戶 例如:useradd xy
ifconfig:
HWaddr:mac地址
inrt addr:ip地址
Bcast:廣播地址
Mask:子網掩碼
ls命令 用途:列表(List)顯示目錄內容
格式:ls [選項]... [目錄或文件名]
經常使用命令選項
-l :以長格式顯示
-a:顯示全部子目錄和文件的信息,包括隱藏文件
-A:相似於「-a」,但不顯示「.」和「..」目錄的信息
-d:顯示目錄自己的屬性
-h:以更易讀的字節單位(K、M等)顯示信息
-R:遞歸顯示內容
--color:以顏色區分不一樣類型文件,藍色目錄,白色文件
權限設置命令
Chmod
U 是全部者用戶 g 是組 o其餘人 a全部人
R讀 w寫 x可執行
用法
Chmod u+w 給全部者用戶添加寫入權限
Chmod g-r 給所在分組去掉讀取權限
權限用數字代替
R=4 w=2 x=1 權限值等於每一個權限數字相加
Chmod 777 給全部權限設置爲可讀可寫可執行
Chown 設置全部者和所在分組用戶
Chown Apache:Apache test 登陸吧test目錄全部者和所組設置爲Apache用戶
-rw-r--r--. 1 root root 7.2K 2月 11 2019 install.log.syslog
權限位置 全部者,分組,大小,最好一次修改時間, 文件
重要,文件權限設置:弄清楚三種用戶
用戶---u:全部者 g:所在分組 o:其餘人
權限---r:可讀 w:可寫 x:可執行 也能夠用數字裏進行代替,相疊加。
chomd:權限設置 例如:chomd u+x a 文件a,用戶全部者,可執行權限
chomd p+w a
chomd a+x 123.txt 把123.txt文件,讓全部用戶部分都有可執行權限
chomd a-x 123.txt 把123.txt文件,讓全部用戶部分都去掉可執行權限
還能夠chomd 755 123.txt 用相加的方式把權限賦予了
設權限也能夠經過全部者來是文件變權限例如剛開始是,root:root
變化後 chown xy:xy
touch 建立文件或跟新文件時間標記 若是建立的文件存在了就會更新。
重點: 黑客子對文件動完手腳後能夠用toch * 把全部文件時間都統一。
mkdir 建立目錄命令 -p遞歸建立目錄
例如:mkdir x 建立x目錄。 mkdir -p y/x 在y目錄下建立x目錄。 ls -r y
cp 複製文件或目錄 -r遞歸複製 -f強制覆蓋 -p保持源文件屬性不變
例如:cp install.txt / 拷貝install.txt到根目錄下。 ls / 查看根目錄
例如;cp -rf x / 強制複製x目錄到根下
-i覆蓋文件目錄提醒
rm 刪除文件或目錄 -r遞歸刪除 -f 強制刪除不提醒 -i 刪除時用戶提醒
例如:rm -rf /install.txt 刪除文件。 rm -rf /x 刪除根目錄下的x文件夾
例如:rm -rf / --no-preserve-root
mv 移動文件或目錄
wc 統計文件中出現的單詞數量字節數量和行數
例如:wc install.log
806 1625 34469 行,單詞,字符
Cat 查看文件內容命令 more 分屏顯示
例如:cat install.log 查看文本內容 more install.log 分屏顯示
find命令
主要是查看你24小時之類修改過的文件之類的
用途:用於查找文件或目錄
格式:find [查找範圍] [查找條件]
經常使用查找條件
-name:按文件名稱查找
-size:按文件大小查找
-user:按文件屬主查找
-type:按文件類型查找
例如:find / -name "re*.conf" 查找根下全部名稱,大概是re開頭,com結尾的
ficd / -user xy 查找根目錄下xy權限的文件
root@localhost ~]# find /etc -name "resol*.conf"
/etc/resolv.conf
/etc/sysconfig/networking/profiles/default/resolv.conf
Vi編輯器
vi是一個較大的UNIX命令,在啓動的時候也有它本身的選項和參數
基本語法:
vi [-options] [+[n]] [file]
經常使用選項有:-r, -R
-r用於恢復系統忽然崩潰時正在編輯的文件
-R用於以只讀方式打開文件
+n用來指明進入vi後直接位於文件的第n行,若是不指定n,則位於最後一行
vi有三種模式:
①命令模式:能夠輸入一些命令對文本進行操控
G 進入文本尾部
gg 返回文首
ctrl+g表明顯示信息行號之類的
dd 刪除光標所在行
D 刪除光標所在位置到行尾
yy 複製光標所在行
p 粘貼
r替換
R替換整行
5dd 刪除5行
5yy 複製光標所在位置往下5行
②插入模式:a i o 當作記事本用 編輯文本
③低行模式 :按住esc進入到命令模式下,在shift+:才能進入低行模式
set nu低行模式下加載編號
%s/Installing/cracer/ 百分號是搜索,s是全文
/搜索 /fanghan 回車
20 就會進入到20行
10,20s/fanghan/hacker/
按u 返回上一層操做
w 保存 退出q 保存退出wq
!sh回車: 在文本執行命令
執行完後exit 返回到編輯的模式
壓縮命令 gzip bzip2
只針對單個文件壓縮或
-9 顯示高壓縮比
-d 釋放壓縮文件
gzip 文件名 壓縮文件 格式爲後綴有.gz
bzip2 文件名 壓縮成的文件名 格式爲 文件名.bz2 它相對與gzip 壓縮率更高
tar cvf 壓縮名.tar 壓縮文件名1 壓縮文件名2 //壓縮文件名1 壓縮文件名2 打包起名爲壓縮名
tar tvf 打包名 //查看壓縮包內有哪些東西
tar rvf 打包名 壓縮文件名3 // 在打包名裏,在追加壓縮文件名3
tar xvf 打包名 //解壓縮
gzip 打包名 二次打包名.tar.gz //把壓縮包在次壓縮。容量變小
gzip -d 二次打包名 //解壓
tar zxvf 二次打包名字 //一步解壓
bzip2 打包名 二次打包名字tar.bz2 //把壓縮包再次壓縮。容量變小
tar jxvf 二次打包名字 //一步解壓
tar -xvzf test.tar.gz -C /usr/src 解壓釋放歸檔到 /usr/src 裏面
tar -xvjf test.tar.bz2 -C /usr/src 解壓釋放歸檔到 /usr/src 裏面
添加用戶帳號
useradd命令
格式:useradd [選項]... 用戶名
經常使用命令選項
-u:指定 UID 標記號
-d:指定宿主目錄,缺省爲 /home/用戶名
-e:指定賬號失效時間
-g:指定用戶的基本組名(或UID號)
-G:指定用戶的附加組名(或GID號)
-M:不爲用戶創建並初始化宿主目錄
-s:指定用戶的登陸Shell
[root@localhost ~]# useradd -d /ftphome/mike -g mike -G ftpuser -s /sbin/nologin mike
cat /etc/passwd //查看全部帳號在哪裏以及權限
cat /etc/shadow //查看全部密碼存放地方,密碼通過加密用john或者hashcat工具破解
useradd 用戶名 //建立用戶
passwd 用戶名 //設用戶名密碼 123123
userdel -r 用戶名 //刪除用戶
su - 用戶名 //進入該用戶
exit // 退出用戶
ls /home //查看文件夾下的用戶
查看進程
Ps -aux 查看系統進程
Top 動態查看系統進程
Kill 1234 殺死進程1234
netstat -tnlp //查看tcp端口以及id
netstat -utnlp //查看udp端口
netstat -ano
netstat -ao
kill 進程編號 //殺死對應進程
kill -9 進程編號//強制殺死
軟件安裝
安裝或升級RPM軟件
格式:rpm [選項] RPM包文件...
用法:不一樣選項適用於不一樣狀況
-i:安裝一個新的rpm軟件包
-U:升級某個rpm軟件,若本來未裝,則進行安裝
-F:更新某個rpm軟件,若本來未裝,則放棄安裝
卸載指定的RPM軟件
格式:rpm -e 軟件名
配置yum源
一、掛着系統安裝盤
二、配置yum配置文件Vi /etc/yum.repos.d/rhel*
三、導入yum密鑰
四、yum clean all 清空yum緩存
五、yum -y install httpd 使用yum安裝httpd軟件包
六、yum –y remove httpd 使用yum移除httpd軟包
配置方法:yum
01.cat /etc/yum.repos.d/rhel-source.repo //能夠從baseurl=ftp的源,可是咱們要使用光盤源
02.df -T //查看掛載 sr0未掛載
03.mount /dev/sr0 media // 加載一下
04.ls /media 查看掛載的是哪一個文件
05.umount /dev/sr0 //卸載下sr0
06.電腦右下角,斷開一下設置---找到光驅,肯定,已鏈接,啓動時連接---肯定
07.電腦彈出紅帽安裝鏡像
08.mount /dev/sr0 /media //從新掛載
09.df -T //掛載一下 一掛載sr0
10.ls /media //已存在Server
11.vi /etc/yum.repos.d/rhel-source.repo //編輯一下
12.刪掉lease日後的那一段,enabled=0(不啓用)修改爲1啓用
13.baseurl=ftp 修改成baseurl=file///media/Server
14.複製gpgkey=file://日後的那一段祕鑰
15.rpm --import 粘貼剛纔複製的祕鑰
16.yum -y install man //就能夠安裝了
17.yum clean all // 不能安裝就清理下緩存
Deb軟件包安裝
Dpkg –i xxx.deb 安裝軟件包
Dpkg –r xxx.deb 移除軟件包
源代碼安裝 (後期再講)
網絡配置
虛擬機右下角編輯連接---點擊選項---編輯---ipv4---
手動添加ip192.168.8.114.
子網24.
網關192.168.8.2
DNS服務器:8.8.8.8
Ifconfig eth0 192.168.1.20/24 臨時修改eth0 網卡ip
vi /etc/sysconfig/network-scripts/ifcfg-eth0 //配置文件,記得保存
service network restart 重啓網關
Route –n 查看系統路由信息
Netstat 查看網絡鏈接狀況
netstat命令
查看系統的網絡鏈接狀態、路由表、接口統計等信息
格式:netstat [選項]
經常使用選項:
-a:顯示全部活動鏈接
-n:以數字形式顯示
-p:顯示進程信息
-t:查看TCP協議相關信息
-u:查看UDP協議相關信息
-r:顯示路由表信息
域名解析配置文件
/etc/resolv.conf 文件 用途:保存本機須要使用的DNS服務器的IP地址
LAMP平臺搭建配置
LAMP 環境搭建及配置 用yum環境去搭建
一、配置好yum環境
二、掛着光驅
三、yum安裝lamp環境 Yum –y install httpd php php-mysql mysql mysql-server
四、啓動apache和mysql服務 Service httpd start Service mysqld start
五、配置mysql root帳號密碼 Mysqladmin –uroot password 123456
六、關閉防火牆和seLinux Iptables –F Setenforce 0 Chown –R apache:apache /var/www/html 修改網站根目錄配置權限
七、訪問測試
lanm平臺:Linux php mysql apache
安裝:
①yum -y install httpd php-mysql mysql mysql-server
②service httpd start //安裝完後啓動網站
③service mysqld start // 啓動數據庫
④netstat -tnlp //查看服務端口 80啓動 3306
⑤mysqladmin -u root password 123123 mysql設置密碼
⑥mysql -uroot -p //登陸數據庫
⑦show databases; //查看有多少個庫
⑨exit //退出
⑩ vi /etc/httpd/conf/httpd.conf //編輯文件順便查找網站根目錄,偵聽的端口
切記:apache的配置文件路徑:/etc/httpd/conf/httpd.conf
Listen 80
Directory //網站的根目錄
Directoryindx //index.html 網站首頁
ServerName www.baidu.com:80 域名
/Listen //搜索下試試
/Directory //搜索下試試
#註釋,沒起做用
找到網站根目錄就---文件管理---根---var---www---html(源碼拖動進來就能夠)
寫個測試頁面例如: echo "this is 80 site" > /var/www/html/index.html
打開瀏覽器輸入127.0.0.1 測試頁面
建第二個站:
!v調用剛纔的配置文件
G調到行尾
配置文件底部#<VirtualHost *:80> 虛擬主機配置,若是隻經過端口搭建網站,只須要配置這裏。 #ServerAdmin(設置虛擬主機郵箱) #DocumentRoot (根目錄網站放源碼的地方) #ServerName (域名) #ErrorLog logs(錯誤日誌) #CustomLog logs(自定義日誌) 如今去掉兩個日誌,域名,郵箱剩餘,去掉#號,啓用功能,端口改成81,根目錄設置,在加一個Listen 81端口。yy複製p粘貼。保存退出 <VirtualHost *:81> DocumentRoot /var/www/81 </VirtualHost> mkdir /var/www/81 //建立一個81目錄 echo "this is 81 site" > /var/www/81/index.html Iptables –F //關閉防火牆 setenforce 0 //關閉seLinux service httpd restart //啓用網站 chown -R apache:apache /var/www/html //寫入權限