如下是一份 Linux 機(jī)器的滲透測試速查表,是在后期開發(fā)期間或者執(zhí)行命令注入等操作時的一些典型命令,設(shè)計為測試人員進(jìn)行本地枚舉檢查之用。
此外,你還可以從這兒閱讀到許多關(guān)于滲透測試的文章。
命令 |
描述 |
netstat -tulpn |
在 Linux 中顯示對應(yīng)了進(jìn)程ID(PID)的網(wǎng)絡(luò)端口。 |
watch ss -stplu |
通過套接字實時觀察 TCP, UDP 端口。 |
lsof -i |
顯示確認(rèn)了的連接。 |
macchanger -m MACADDR INTR |
在 KALI Linux 上修改 MAC 地址。 |
ifconfig eth0 192.168.2.1/24 |
在 Linux 中設(shè)置 ID 地址。 |
ifconfig eth0:1 192.168.2.3/24 |
在 Linux 中向現(xiàn)有的網(wǎng)絡(luò)接口添加 IP 地址。 |
ifconfig eth0 hw ether MACADDR |
使用 ifconfig 修改 Linux 中的 MAC 地址。 |
ifconfig eth0 mtu 1500 |
在 Linux 中使用 ifconfig 修改 MTU 的大小,將 1500 改為你想要的 MTU。 |
dig -x 192.168.1.1 |
對 IP 地址進(jìn)行反向查找。 |
host 192.168.1.1 |
在一個 IP 地址上進(jìn)行反向查找,適用于沒有安裝 dig 的情況。 |
dig @192.168.2.2 domain.com -t AXFR |
使用 dig 執(zhí)行一次 DNS 區(qū)域傳輸。 |
host -l domain.com nameserver |
使用 host 執(zhí)行一次 DNS 區(qū)域傳輸。 |
nbtstat -A x.x.x.x |
獲取 IP 地址對應(yīng)的域名。 |
ip addr add 192.168.2.22/24 dev eth0 |
向 Linux 添加一個隱藏的 IP 地址,在執(zhí)行 ifconfig 命令時不會顯示這個 IP 地址。 |
tcpkill -9 host google.com |
阻止從主機(jī)訪問 google.com。 |
echo “1” > /proc/sys/net/ipv4/ip_forward |
啟用 IP 轉(zhuǎn)發(fā),將 Linux 盒子變成一個路由器——這樣就方便通過這個盒子來進(jìn)行路由流量的控制。 |
echo “8.8.8.8” > /etc/resolv.conf |
使用 Google 的 DNS。 |
系統(tǒng)信息命令
對于本地的枚舉檢查很有用。
命令 |
描述 |
whoami |
顯示 Linux 上當(dāng)前已登錄用戶。 |
id |
向用戶顯示當(dāng)前已登錄的用戶和組。 |
last |
顯示最后一次登陸的用戶。 |
mount |
顯示已掛載的驅(qū)動。 |
df -h |
用人類可讀的輸出顯示磁盤使用情況。 |
echo “user:passwd” | chpasswd |
用一行命令重置密碼。 |
getent passwd |
列出 Linux 上的用戶。 |
strings /usr/local/bin/blah |
顯示非文本文件的內(nèi)容,例如:一個二進(jìn)制文件里面有什么。 |
uname -ar |
顯示運行中的內(nèi)核版本。 |
PATH=$PATH:/my/new-path |
添加一個新的路徑,方便進(jìn)行本地文件系統(tǒng)(FS)操作。 |
history |
顯示用戶在之前執(zhí)行的 bash 腳本歷史記錄,還有敲入的命令。 |
基于 Redhat / CentOS / RPM 的發(fā)行版
命令 |
描述 |
cat /etc/redhat-release |
顯示 Redhat / CentOS 版本號。 |
rpm -qa |
在基于 RPM 的 Linux 上列出所有已經(jīng)安裝上的 RPM 包。 |
rpm -q –changelog openvpn |
檢查已安裝的 RPM 是否針對 CVE 打了補(bǔ)丁,可以用 grep 命令過濾出跟 CVE 有關(guān)的輸出。 |
YUM 命令
基于 RPM 的系統(tǒng)使用了包管理器, 你可以用這些命令獲取到有關(guān)已安裝包或者其它工具的有用信息。
命令 |
描述 |
yum update |
使用 YUM 更新所有的 RPM 包,也會顯示出哪些已經(jīng)過時了。 |
yum update httpd |
更新單獨的包,在此例中是 HTTPD (Apache)。 |
yum install package |
使用 YUM 安裝一個包。 |
yum –exclude=package kernel* update |
在使用 YUM 時將一個包排除在外不更新。 |
yum remove package |
使用 YUM 刪除包。 |
yum erase package |
使用 YUM 刪除包。 |
yum list package |
列出有關(guān) yum 包的信息。 |
yum provides httpd |
顯示一個包是的用途,例如: Apache HTTPD Server。 |
yum info httpd |
顯示包信息,架構(gòu),版本等信息。 |
yum localinstall blah.rpm |
使用 YUM 來安裝本地 RPM, 從資源庫進(jìn)行安裝。 |
yum deplist package |
顯示包的提供方信息。 |
yum list installed | more |
列出所有已安裝的包。 |
yum grouplist | more |
顯示所有的 YUM 分組。 |
yum groupinstall ‘Development Tools’ |
安裝 YUM 分組。 |
基于 Debian / Ubuntu / .deb 的發(fā)行版
命令 |
描述 |
cat /etc/debian_version |
顯示 Debian 版本號。 |
cat /etc/*-release |
顯示 Ubuntu 版本號。 |
dpkg -l |
在基于 Debian / .deb 的 Linux 發(fā)行版上列出所有已安裝的包。 |
Linux 用戶管理
命令 |
描述 |
useradd new-user |
創(chuàng)建一個新的 Linux 用戶。 |
passwd username |
重置 Linux 用戶密碼, 如果你是 root 用戶,只要輸入密碼就行了。 |
deluser username |
刪除一個 Linux 用戶。 |
Linux 解壓縮命令
如何在 Linux 上解析不同的壓縮包 (tar, zip, gzip, bzip2 等等) ,以及其它的一些用來在壓縮包中進(jìn)行搜索等操作的小技巧。
命令 |
描述 |
unzip archive.zip |
在 Linux 上提取 zip 包中的文件。 |
zipgrep *.txt archive.zip |
在一個 zip 壓縮包中搜索。 |
tar xf archive.tar |
在 Linux 上提取 tar 包中的文件。 |
tar xvzf archive.tar.gz |
在 Linux 上提取 tar.gz 包中的文件。 |
tar xjf archive.tar.bz2 |
在 Linux 上提取 tar.bz2 包中的文件。 |
tar ztvf file.tar.gz | grep blah |
在一個 tar.gz 文件中搜索。 |
gzip -d archive.gz |
在 Linux 上提取 gzip 中的文件。 |
zcat archive.gz |
在 Linux 以不解壓縮的方式讀取一個 gz 文件。 |
zless archive.gz |
用較少的命令實現(xiàn)對 .gz 壓縮包相同的功能。 |
zgrep ‘blah’ /var/log/maillog*.gz |
在 Linux 上對 .gz 壓縮包里面的內(nèi)容執(zhí)行搜索,比如搜索被壓縮過的日志文件。 |
vim file.txt.gz |
使用 vim 讀取 .txt.gz 文件(我個人的最愛)。 |
upx -9 -o output.exe input.exe |
在 Linux 上使用 UPX 壓縮 .exe 文件。 |
Linux 壓縮命令
命令 |
描述 |
zip -r file.zip /dir/* |
在 Linux 上創(chuàng)建一個 .zip 文件。 |
tar cf archive.tar files |
在 Linux 上創(chuàng)建一個 tar 文件。 |
tar czf archive.tar.gz files |
在 Linux 上創(chuàng)建一個 tar.gz 文件。 |
tar cjf archive.tar.bz2 files |
在 Linux 上創(chuàng)建一個 tar.bz2 文件。 |
gzip file |
在 Linux 上創(chuàng)建一個 .gz 文件。 |
Linux 文件命令
命令 |
描述 |
df -h blah |
在 Linux 上顯示文件/目錄的大小。 |
diff file1 file2 |
在 Linux 上比對/顯示兩個文件之間的差別。 |
md5sum file |
在 Linux 上生成 MD5 摘要。 |
md5sum -c blah.iso.md5 |
在 Linux 上檢查文件的 MD5 摘要,這里假設(shè)文件和 .md5 處在相同的路徑下。 |
file blah |
在 Linux 上查找出文件的類型,也會將文件是 32 還是 64 位顯示出來。 |
dos2unix |
將 Windows 的行結(jié)束符轉(zhuǎn)成 Unix/Linux 的。 |
base64 input-file > output-file |
對輸入文件進(jìn)行 Base64 編碼,然后輸出一個叫做 output-file 的 Base64 編碼文件。 |
base64 -d input-file > output-file |
對輸入文件進(jìn)行 Base64 解碼,然后輸出一個叫做 output-file 的 Base64 解碼文件。 |
touch -r ref-file new-file |
使用來自于引用文件的時間戳數(shù)據(jù)創(chuàng)建一個新文件,放上 -r 以簡單地創(chuàng)建一個文件。 |
rm -rf |
不顯示確認(rèn)提示就刪除文件和目錄。 |
Samba 命令
從 Linux 連接到 Samba 共享。
$ smbmount //server/share /mnt/win -o user=username,password=password1
$ smbclient -U user \\\\server\\share
$ mount -t cifs -o username=user,password=password //x.x.x.x/share /mnt/share
打破 shell 的限制
要謝謝 G0tmi1k((或者他參考過的內(nèi)容)。
Python 小技巧:
python -c 'import pty;pty.spawn("/bin/bash")'
echo os.system('/bin/bash')
/bin/sh -i
Misc 命令
命令 |
描述 |
init 6 |
從命令行重啟 Linux 。 |
gcc -o output.c input.c |
編譯 C 代碼。 |
gcc -m32 -o output.c input.c |
交叉編譯 C 代碼,在 64 位 Linux 上將編譯出 32 位的二進(jìn)制文件。 |
unset HISTORYFILE |
關(guān)閉 bash 歷史日志記錄功能。 |
rdesktop X.X.X.X |
從 Linux 連接到 RDP 服務(wù)器。 |
kill -9 $$ |
關(guān)掉當(dāng)前的會話。 |
chown user:group blah |
修改文件或者目錄的所有者。 |
chown -R user:group blah |
修改文件或者目錄,以及目錄下面文件/目錄的擁有者 —— 遞歸執(zhí)行 chown。 |
chmod 600 file |
修改文件/目錄的權(quán)限設(shè)定, 詳情見 [Linux 文件系統(tǒng)權(quán)限](#linux-file-system-permissions) 。 |
清除 bash 歷史:
$ ssh user@X.X.X.X | cat /dev/null > ~/.bash_history
Linux 文件系統(tǒng)權(quán)限
取值 |
意義 |
777 |
rwxrwxrwx 沒有限制,完全可讀可寫可執(zhí)行(RWX),用戶可以做任何事情。 |
755 |
rwxr-xr-x 擁有者可完全訪問,其他人只能讀取和執(zhí)行文件。 |
700 |
rwx—— 擁有者可完全訪問,其他人都不能訪問。 |
666 |
rw-rw-rw- 所有人可以讀取和寫入,但不可執(zhí)行。 |
644 |
rw-r–r– 擁有者可以讀取和寫入,其他人只可以讀取。 |
600 |
rw——- 擁有者可以讀取和寫入,其他人都不能訪問。 |
Linux 文件系統(tǒng)的滲透測試備忘錄
目錄 |
描述 |
/ |
/ 也被稱為“斜杠”或者根。 |
/bin |
由系統(tǒng)、系統(tǒng)管理員以及用戶共享的通用程序。 |
/boot |
Boot 文件, 啟動加載器(grub), 內(nèi)核, vmlinuz |
/dev |
包含了對系統(tǒng)設(shè)備、帶有特殊屬性的文件的引用。 |
/etc |
重要的系統(tǒng)配置文件。 |
/home |
系統(tǒng)用戶的主目錄。 |
/lib |
庫文件,包括系統(tǒng)和用戶都需要的所有類型的程序的文件。 |
/lost+found |
文件操作失敗會被保存在這里。 |
/mnt |
外部文件系統(tǒng)的標(biāo)準(zhǔn)掛載點。 |
/media |
外部文件系統(tǒng)(或者某些發(fā)行版)的掛載點。 |
/net |
整個遠(yuǎn)程文件系統(tǒng)的標(biāo)準(zhǔn)掛載點 —— nfs。 |
/opt |
一般都是包含一些附加的或者第三方軟件。 |
/proc |
一個包含了系統(tǒng)資源相關(guān)信息的虛擬文件系統(tǒng)。 |
/root |
root 用戶的主目錄。 |
/sbin |
由系統(tǒng)和系統(tǒng)管理員來使用的程序。 |
/tmp |
供系統(tǒng)使用的臨時空間,重啟時會被清空。 |
/usr |
供所有用戶相關(guān)程序使用的程序、庫、文檔等等。 |
/var |
存儲所有由用戶創(chuàng)建的可變文件和臨時文件,比如日志文件、郵件隊列、后臺打印程序,Web服務(wù)器,數(shù)據(jù)庫等等。 |
Linux 中有趣的文件/目錄
如果你想嘗試進(jìn)行特權(quán)升級/執(zhí)行后期開發(fā),這些都是你值得一瞧的命令。
路徑 |
描述 |
/etc/passwd |
包含了本地 Linux 的用戶。 |
/etc/shadow |
包含了哈希過的本地賬戶密碼。 |
/etc/group |
包含了本地賬戶分組。 |
/etc/init.d/ |
包含了服務(wù)網(wǎng)初始化腳本 – 具體都安裝了些啥應(yīng)該值得一瞧。 |
/etc/hostname |
系統(tǒng)的 hostname。 |
/etc/network/interfaces |
網(wǎng)絡(luò)接口。 |
/etc/resolv.conf |
系統(tǒng)的 DNS 服務(wù)。 |
/etc/profile |
系統(tǒng)的環(huán)境變量。 |
~/.ssh/ |
SSH 密鑰。 |
~/.bash_history |
用戶的 bash 歷史日志。 |
/var/log/ |
Linux 系統(tǒng)的日志文件一般就被存放在這里。 |
/var/adm/ |
UNIX 系統(tǒng)的日志文件一般就被存在在這里。 |
/var/log/apache2/access.log/var/log/httpd/access.log |
Apache 訪問日志文件通常的存在路徑。 |
/etc/fstab |
掛載的文件系統(tǒng)。 |
以上就是腳本之家分享給大家的關(guān)于超全的 Linux 滲透測試命令速查表的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!