<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>jm33_ng</title><link>https://jm33.me/</link><description/><atom:link href="https://jm33.me/feeds/all.rss.xml" rel="self"/><lastBuildDate>Sat, 17 Jan 2026 00:00:00 +0800</lastBuildDate><item><title>Writing a Linux BOF Loader from Scratch</title><link>https://jm33.me/writing-a-linux-bof-loader-from-scratch.html</link><description>&lt;p&gt;&lt;img alt="banner" src="/img/linux-bof.png"/&gt;&lt;/p&gt;

&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Beacon Object Files (BOFs) have revolutionized the way we execute code in memory on Windows systems, particularly within the Cobalt Strike framework. As you may know, I have been working on my own C2 framework, &lt;a href="https://github.com/jm33-m0/emp3r0r"&gt;emp3r0r&lt;/a&gt;, which aims to bring similar capabilities to Linux environments. In this post, I …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Sat, 17 Jan 2026 00:00:00 +0800</pubDate><guid>tag:jm33.me,2026-01-17:/writing-a-linux-bof-loader-from-scratch.html</guid><category>R&amp;D</category><category>linux-bof</category><category>linux</category><category>elf</category><category>in-memory</category><category>emp3r0r</category><category>mmap</category><category>bof</category><category>cobalt strike</category><category>c2</category></item><item><title>sRDI for Linux: Stealthy In-Memory ELF Loading</title><link>https://jm33.me/srdi-for-linux-stealthy-in-memory-elf-loading.html</link><description>&lt;p&gt;&lt;img alt="banner" src="/img/srdi_linux/banner.png"/&gt;&lt;/p&gt;

&lt;h1 id="tldr"&gt;TL;DR&lt;/h1&gt;
&lt;p&gt;The source code of this module is available in &lt;a href="https://github.com/jm33-m0/emp3r0r/tree/v3/core/modules/shellcode_stager"&gt;emp3r0r&lt;/a&gt;.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Pure C Shellcode&lt;/strong&gt;: I implemented a full ELF loader and network stack in C, using direct syscalls to avoid &lt;code&gt;libc&lt;/code&gt; dependencies.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;True In-Memory&lt;/strong&gt;: Uses &lt;code&gt;mmap&lt;/code&gt; to manually map segments, avoiding &lt;code&gt;memfd_create&lt;/code&gt; and disk I/O.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Stealth&lt;/strong&gt;: Randomizes ELF …&lt;/li&gt;&lt;/ol&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Sun, 14 Dec 2025 00:00:00 +0800</pubDate><guid>tag:jm33.me,2025-12-14:/srdi-for-linux-stealthy-in-memory-elf-loading.html</guid><category>R&amp;D</category><category>linux</category><category>elf</category><category>shellcode</category><category>in-memory</category><category>reflective loading</category><category>srdi</category><category>emp3r0r</category><category>syscall</category><category>mmap</category><category>aes</category><category>deflate</category></item><item><title>Reversing a Nim-based APT Sample with Ghidra and x64dbg</title><link>https://jm33.me/reversing-a-nim-based-apt-sample-with-ghidra-and-x64dbg.html</link><description>&lt;p&gt;&lt;img alt="banner" src="/img/reddelta/banner.png"/&gt;&lt;/p&gt;

&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;This article is not just about analysing a malware sample, it's more about sharing my malware analysis methodology in general, and the sample I used has some interesting characteristics that make it a good candidate for demonstration.&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://www.virustotal.com/gui/file/f8c1a4c3060bc139d8ac9ad88d2632d40a96a87d58aba7862f35a396a18f42e5"&gt;sample&lt;/a&gt; is from a Chinese APT group known as RedDelta. The …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Fri, 14 Nov 2025 00:00:00 +0800</pubDate><guid>tag:jm33.me,2025-11-14:/reversing-a-nim-based-apt-sample-with-ghidra-and-x64dbg.html</guid><category>Malware</category><category>ghidra</category><category>nim</category><category>reversing</category><category>windows</category><category>x64dbg</category><category>malware</category></item><item><title>Offensive CGO - An ELF Loader</title><link>https://jm33.me/offensive-cgo-an-elf-loader.html</link><description>&lt;p&gt;&lt;img alt="code screenshot" src="/img/offensive_cgo/elf_loader_code.webp"/&gt;&lt;/p&gt;

&lt;h2 id="tldr"&gt;TL;DR&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.com/jm33-m0/emp3r0r"&gt;emp3r0r&lt;/a&gt; is a C2 framework written in pure Go. For many years, I have been building it without &lt;a href="https://pkg.go.dev/cmd/cgo"&gt;CGO&lt;/a&gt; because of annoying dependencies (glibc) that prevent the agent from running on some systems, that also ruled out the possibility of using CGO to compile agent in DLL or …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Fri, 24 Jan 2025 00:00:00 +0800</pubDate><guid>tag:jm33.me,2025-01-24:/offensive-cgo-an-elf-loader.html</guid><category>Tools</category><category>golang</category><category>elf</category><category>loader</category><category>cgo</category><category>redteam</category><category>linux</category></item><item><title>Reversing a Go Malware Using Ghidra</title><link>https://jm33.me/reversing-a-go-malware-using-ghidra.html</link><description>&lt;p&gt;&lt;img alt="symbols" src="/img/20231208/symbols.png"&gt;&lt;/p&gt;
&lt;p&gt;I was called to handle an incident in which a malicious IP address is accessed each time the system boots. They couldn't find out what process is making the connection.&lt;/p&gt;
&lt;p&gt;Using one of the BCC eBPF tools called &lt;code&gt;tcpconnect.py&lt;/code&gt;, I was able to locate the malicious process that's disguised …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Fri, 08 Dec 2023 00:00:00 +0800</pubDate><guid>tag:jm33.me,2023-12-08:/reversing-a-go-malware-using-ghidra.html</guid><category>Malware</category><category>ghidra</category><category>golang</category><category>reversing</category><category>linux</category></item><item><title>Secure Boot in Arch Linux</title><link>https://jm33.me/secure-boot-in-arch-linux.html</link><description>&lt;p&gt;&lt;img alt="success" src="/img/secure_boot/arch.jpg"/&gt;&lt;/p&gt;

&lt;h2 id="unified-kernel-image"&gt;Unified Kernel Image&lt;/h2&gt;
&lt;p&gt;Read &lt;a href="https://wiki.archlinux.org/title/Unified_kernel_image"&gt;Arch Wiki&lt;/a&gt; for details.&lt;/p&gt;
&lt;p&gt;You can generate a UKI via &lt;code&gt;mkinitcpio&lt;/code&gt;, first edit its &lt;code&gt;linux.preset&lt;/code&gt; config file:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;# mkinitcpio preset file for the 'linux' package

#ALL_config="/etc/mkinitcpio.conf"
ALL_kver="/boot/vmlinuz-linux"
ALL_microcode=(/boot/*-ucode.img)

PRESETS=('default' 'fallback')

#default_config="/etc/mkinitcpio.conf"
default_image="/boot/initramfs-linux …&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Mon, 17 Jul 2023 00:00:00 +0800</pubDate><guid>tag:jm33.me,2023-07-17:/secure-boot-in-arch-linux.html</guid><category>misc</category><category>linux</category><category>arch</category><category>secure boot</category></item><item><title>OpenSSH Server 密码收割机</title><link>https://jm33.me/openssh-server-mi-ma-shou-ge-ji.html</link><description>
&lt;p&gt;&lt;img alt="banner" src="/img/sshd-inject/banner.jpg"/&gt;&lt;/p&gt;
&lt;h2 id="_1"&gt;背景&lt;/h2&gt;
&lt;p&gt;差不多三年前，我读了一篇关于 sshd 进程注入和密码窃取的&lt;a href="https://blog.xpnsec.com/linux-process-injection-aka-injecting-into-sshd-for-fun/"&gt;文章&lt;/a&gt;，然后在作者的基础上实现了一个自动化的&lt;a href="https://jm33.me/sshd-injection-and-password-harvesting.html#tldr"&gt;SSH 密码收 …&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Tue, 06 Jun 2023 00:00:00 +0800</pubDate><guid>tag:jm33.me,2023-06-06:/openssh-server-mi-ma-shou-ge-ji.html</guid><category>R&amp;D</category><category>emp3r0r</category><category>sshd</category><category>ssh</category><category>injection</category><category>backdoor</category><category>credential harvesting</category><category>ssh-harvester</category><category>assembly</category><category>linux</category></item><item><title>Migrating from Libvirt to Qemu</title><link>https://jm33.me/migrating-from-libvirt-to-qemu.html</link><description>&lt;p&gt;&lt;img alt="virgl" src="/img/qemu/webgl.png"/&gt;&lt;/p&gt;

&lt;h2 id="graphics-in-qemu"&gt;Graphics in Qemu&lt;/h2&gt;
&lt;h3 id="performance-impact-of-spicevirgl"&gt;Performance Impact of SPICE+VirGL&lt;/h3&gt;
&lt;p&gt;I have been using &lt;a href="https://libvirt.org/"&gt;libvirt (virt-manager)&lt;/a&gt; for years, until recently I tried to run Linux VMs with &lt;a href="https://www.qemu.org/"&gt;Qemu&lt;/a&gt; directly using &lt;a href="https://docs.mesa3d.org/drivers/virgl.html"&gt;virgl&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Running a Linux VM with Qemu's &lt;a href="https://qemu.readthedocs.io/en/latest/system/invocation.html"&gt;SDL display&lt;/a&gt; is much smoother than SPICE+VirGL solution provided by virt-manager, it made me …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Sun, 04 Jun 2023 00:00:00 +0800</pubDate><guid>tag:jm33.me,2023-06-04:/migrating-from-libvirt-to-qemu.html</guid><category>Tools</category><category>libvirt</category><category>qemu</category><category>linux</category><category>virtualization</category><category>gpu</category></item><item><title>Secure Boot and LKM Signing in Fedora</title><link>https://jm33.me/secure-boot-and-lkm-signing-in-fedora.html</link><description>&lt;p&gt;&lt;img alt="success" src="/img/secure_boot/sb.webp"/&gt;&lt;/p&gt;

&lt;p&gt;For Windows PCs, it's very likely that they are already configured to use secure boot. The main benefit of secure boot for desktop users is they are protected from malicious code that hijacks the boot process of Windows OS, known as "bootkit".&lt;/p&gt;
&lt;p&gt;If you want protection from physical threat (that …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Mon, 04 Jul 2022 00:00:00 +0800</pubDate><guid>tag:jm33.me,2022-07-04:/secure-boot-and-lkm-signing-in-fedora.html</guid><category>misc</category><category>linux</category><category>lkm</category></item><item><title>Fully Interactive Remote Shell for Windows</title><link>https://jm33.me/fully-interactive-remote-shell-for-windows.html</link><description>&lt;p&gt;&lt;img alt="windows shell" src="/img/emp3r0r-windows-shell.png"/&gt;&lt;/p&gt;

&lt;h2 id="understanding-windows-console-host"&gt;Understanding Windows Console Host&lt;/h2&gt;
&lt;p&gt;If you open &lt;code&gt;cmd.exe&lt;/code&gt; or &lt;code&gt;powershell.exe&lt;/code&gt; in Windows, you will always find &lt;code&gt;conhost.exe&lt;/code&gt; alongside them. As a matter of fact, &lt;code&gt;conhost.exe&lt;/code&gt; has been around for more than a decade. Every (console based) Windows program has a "console" with them, for example when …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Fri, 22 Apr 2022 00:00:00 +0800</pubDate><guid>tag:jm33.me,2022-04-22:/fully-interactive-remote-shell-for-windows.html</guid><category>R&amp;D</category><category>windows</category><category>emp3r0r</category><category>conhost</category><category>conpty</category><category>terminal</category><category>shell</category><category>pentest</category></item><item><title>Use Python for Linux Post-Exploitation</title><link>https://jm33.me/use-python-for-linux-post-exploitation.html</link><description>
&lt;p&gt;&lt;img alt="python" src="/img/python/158020360-b52bc80b-8383-46d1-83be-6f31907a3bc8.png"/&gt;&lt;/p&gt;
&lt;h2 id="lets-talk-about-hacking-in-linux"&gt;Let's talk about hacking in Linux&lt;/h2&gt;
&lt;p&gt;Unlike Windows, who is well known for keeping backward compatibility, most Linux distros simply don't care about this, it's very common that different distros use different system utilities, different libraries, even the most critial one --- C standard library.&lt;/p&gt;
&lt;p&gt;Most Linux distros are based on …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Sat, 12 Mar 2022 00:00:00 +0800</pubDate><guid>tag:jm33.me,2022-03-12:/use-python-for-linux-post-exploitation.html</guid><category>R&amp;D</category><category>pentest</category><category>post-exploitation</category><category>emp3r0r</category><category>linux</category><category>python</category></item><item><title>emp3r0r - Injection</title><link>https://jm33.me/emp3r0r-injection.html</link><description>
&lt;p&gt;&lt;img alt="emp3r0r injection" src="/img/emp3r0r-injection/emp3r0r-inject.png"/&gt;&lt;/p&gt;
&lt;h2 id="shared-library-injection"&gt;shared library injection&lt;/h2&gt;
&lt;p&gt;with &lt;a href="https://github.com/jm33-m0/emp3r0r/tree/master/core/modules/vaccine"&gt;&lt;code&gt;gdb&lt;/code&gt;&lt;/a&gt; (yes i have compiled a fully static gdb), we can easily perform the injection by invoking &lt;code&gt;dlopen&lt;/code&gt; in target processes, since most processes on a Linux machine are linked with &lt;code&gt;glibc&lt;/code&gt;, this will work for almost every process, including &lt;code&gt;systemd&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;according to &lt;a href="https://magisterquis.github.io/2018/03/11/process-injection-with-gdb.html"&gt;https://magisterquis.github …&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Sat, 05 Feb 2022 00:00:00 +0800</pubDate><guid>tag:jm33.me,2022-02-05:/emp3r0r-injection.html</guid><category>R&amp;D</category><category>pentest</category><category>post-exploitation</category><category>emp3r0r</category><category>linux</category><category>HTTP2</category><category>port-forwarding</category><category>injection</category><category>gdb</category><category>shellcode</category></item><item><title>emp3r0r - SSH</title><link>https://jm33.me/emp3r0r-ssh.html</link><description>
&lt;p&gt;&lt;img alt="2021-09-14_13-19" src="/img/2021-09-14_13-19.png"/&gt;&lt;/p&gt;
&lt;h2 id="what-we-can-do-with-ssh"&gt;what we can do with ssh&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ssh&lt;/code&gt; to target host for remote shell access&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sftp&lt;/code&gt; to target host for FTP service&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ssh -D&lt;/code&gt; for socks proxy&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ssh -L&lt;/code&gt;/&lt;code&gt;ssh -R&lt;/code&gt; for port mapping&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;all these features are provided by openssh suite, which we use everyday. why not integrate them into …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Tue, 14 Sep 2021 00:00:00 +0800</pubDate><guid>tag:jm33.me,2021-09-14:/emp3r0r-ssh.html</guid><category>Tools</category><category>pentest</category><category>post-exploitation</category><category>emp3r0r</category><category>linux</category><category>HTTP2</category><category>port-forwarding</category><category>ssh</category></item><item><title>CSE548 - Bridges and Switches</title><link>https://jm33.me/cse548-bridges-and-switches.html</link><description>&lt;p&gt;&lt;img alt="week3" src="/img/cse548/week3.webp"/&gt;&lt;/p&gt;

&lt;h2 id="terminology"&gt;Terminology&lt;/h2&gt;
&lt;h3 id="port"&gt;Port&lt;/h3&gt;
&lt;p&gt;It can be really confusing as we know "port" as in TCP/UDP context, but here in layer 2 (data link) context, a "port" is equivalent to an "&lt;strong&gt;interface&lt;/strong&gt;" in Linux language.&lt;/p&gt;
&lt;p&gt;When we talk about ports of a bridge, we are talking about different interfaces that may …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Thu, 03 Jun 2021 00:00:00 +0800</pubDate><guid>tag:jm33.me,2021-06-03:/cse548-bridges-and-switches.html</guid><category>misc</category><category>switch</category><category>bridge</category><category>network</category><category>asu</category></item><item><title>Enable Mouse Natural Scroll In Windows 10</title><link>https://jm33.me/enable-mouse-natural-scroll-in-windows-10.html</link><description>&lt;p&gt;&lt;img alt="settings" src="/img/win10-mouse/settings.webp"/&gt;&lt;/p&gt;

&lt;h2 id="why"&gt;Why&lt;/h2&gt;
&lt;p&gt;In macOS and Linux world, users can configure their mouse scroll direction conveniently with a provided settings UI or human readable config file. In Windows it's a completely different story, you won't find anything in settings UI, and Windows doesn't use config files, instead, it uses registry (which everybody …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Sat, 01 May 2021 00:00:00 +0800</pubDate><guid>tag:jm33.me,2021-05-01:/enable-mouse-natural-scroll-in-windows-10.html</guid><category>misc</category><category>mouse</category><category>natural scroll</category><category>windows</category></item><item><title>QQ Is Reading Your Browsing History</title><link>https://jm33.me/qq-is-reading-your-browsing-history.html</link><description>&lt;p&gt;&lt;img alt="qq-logo" src="/img/qq/qq-logo.png.webp" style="zoom: 67%;"/&gt;&lt;/p&gt;

&lt;h2 id="how-do-i-know"&gt;how do i know&lt;/h2&gt;
&lt;p&gt;original post &lt;a href="https://www.v2ex.com/t/745030"&gt;here (QQ 正在尝试读取你的浏览记录)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;the following content is based on QQ 9.0.4&lt;/p&gt;
&lt;h3 id="see-what-qq-does-with-procmon"&gt;see what qq does with procmon&lt;/h3&gt;
&lt;p&gt;i think theres one thing many people tend to ignore, you can view target …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Fri, 22 Jan 2021 00:00:00 +0800</pubDate><guid>tag:jm33.me,2021-01-22:/qq-is-reading-your-browsing-history.html</guid><category>misc</category><category>QQ</category><category>reversing</category></item><item><title>emp3r0r - 0x00</title><link>https://jm33.me/emp3r0r-0x00.html</link><description>&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;                      ____        ___
                     |___ \      / _ \
   ___ _ __ ___  _ __  __) |_ __| | | |_ __
  / _ \ '_ ` _ \| '_ \|__ &amp;lt;| '__| | | | '__|
 |  __/ | | | | | |_) |__) | |  | |_| | |
  \___|_| |_| |_| .__/____/|_|   \___/|_|
                | |
                |_|
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;i will post further updates here, for convenience&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="pinned-updates"&gt;(pinned) updates&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://jm33.me/emp3r0r-0x00.html"&gt;emp3r0r - 0x00&lt;/a&gt;&lt;/strong&gt; :
capabilities, (planned …&lt;/li&gt;&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Tue, 19 Jan 2021 00:00:00 +0800</pubDate><guid>tag:jm33.me,2021-01-19:/emp3r0r-0x00.html</guid><category>Tools</category><category>pentest</category><category>post-exploitation</category><category>emp3r0r</category><category>linux</category></item><item><title>emp3r0r - Process Injection And Persistence</title><link>https://jm33.me/emp3r0r-process-injection-and-persistence.html</link><description>&lt;p&gt;&lt;img alt="banner" src="/img/emp3ror/contraceptive-injection.webp"/&gt;&lt;/p&gt;

&lt;h2 id="process-injection-in-linux"&gt;Process Injection In Linux&lt;/h2&gt;
&lt;h3 id="background"&gt;Background&lt;/h3&gt;
&lt;p&gt;The techniques covered in this article are part of &lt;a href="https://github.com/jm33-m0/emp3r0r"&gt;emp3r0r&lt;/a&gt; project.&lt;/p&gt;
&lt;p&gt;Linux has something that other platforms don't, the &lt;a href="https://www.commandlinux.com/man-page/man5/procfs.5.html"&gt;&lt;code&gt;procfs&lt;/code&gt;&lt;/a&gt;, as Unix people always like to say "&lt;em&gt;Everything is a file&lt;/em&gt;". From &lt;code&gt;/proc/pid/maps&lt;/code&gt; we can read the process's memory mappings, and with &lt;code&gt;/proc …&lt;/code&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Tue, 19 Jan 2021 00:00:00 +0800</pubDate><guid>tag:jm33.me,2021-01-19:/emp3r0r-process-injection-and-persistence.html</guid><category>R&amp;D</category><category>emp3r0r</category><category>linux</category><category>shellcode</category></item><item><title>emp3r0r - Break Out Of Internal Network</title><link>https://jm33.me/emp3r0r-break-out-of-internal-network.html</link><description>&lt;p&gt;&lt;img alt="proxy-banner" src="/img/emp3ror/proxy-banner.webp"/&gt;&lt;/p&gt;

&lt;h2 id="intro"&gt;intro&lt;/h2&gt;
&lt;p&gt;from what i have heard of, pentesters/hackers manually set up their port mapping in their target networks, some people would even use &lt;code&gt;iptables&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;please allow me to save you from those shitty works with &lt;a href="https://github.com/jm33-m0/emp3r0r"&gt;emp3r0r&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;when an agent lands on a host, it checks if there were internet …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Wed, 06 Jan 2021 00:00:00 +0800</pubDate><guid>tag:jm33.me,2021-01-06:/emp3r0r-break-out-of-internal-network.html</guid><category>Tools</category><category>pentest</category><category>post-exploitation</category><category>emp3r0r</category><category>linux</category><category>proxy</category></item><item><title>SSHD Injection and Password Harvesting</title><link>https://jm33.me/sshd-injection-and-password-harvesting.html</link><description>
&lt;p&gt;&lt;img alt="openssh" src="/img/sshd-inject/openssh.webp"/&gt;&lt;/p&gt;
&lt;h1 id="tldr"&gt;TL;DR&lt;/h1&gt;
&lt;p&gt;The source code of this idea is available on &lt;a href="https://github.com/jm33-m0/SSH-Harvester"&gt;GitHub&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;And the weaponized version is available in &lt;a href="https://github.com/jm33-m0/emp3r0r"&gt;emp3r0r&lt;/a&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Use &lt;code&gt;echo 'print __libc_dlopen_mode("/path/to/library.so", 2)' | gdb -p &amp;lt;PID&amp;gt;&lt;/code&gt; for process injection&lt;/li&gt;
&lt;li&gt;Write a shared library to inject into sshd process&lt;/li&gt;
&lt;li&gt;In the library, fork a child …&lt;/li&gt;&lt;/ol&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Mon, 31 Aug 2020 00:00:00 +0800</pubDate><guid>tag:jm33.me,2020-08-31:/sshd-injection-and-password-harvesting.html</guid><category>R&amp;D</category><category>sshd</category><category>ssh</category><category>injection</category><category>backdoor</category><category>credential harvesting</category><category>ssh-harvester</category><category>assembly</category><category>linux</category></item><item><title>Process Injection On Linux</title><link>https://jm33.me/process-injection-on-linux.html</link><description>&lt;p&gt;&lt;img alt="banner" src="/img/linux-inject/linux-inject.webp"/&gt;&lt;/p&gt;

&lt;h1 id="see-also"&gt;See also&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://jm33.me/emp3r0r-injection.html"&gt;Weaponized shared library injection&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://jm33.me/emp3r0r-process-injection-and-persistence.html"&gt;Shellcode injection 101&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/jm33-m0/emp3r0r"&gt;Emp3r0r&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="dynamic-linkerloader-make-an-elf-load-specific-libraries"&gt;Dynamic Linker/Loader - Make an ELF load specific libraries&lt;/h1&gt;
&lt;h2 id="intro"&gt;Intro&lt;/h2&gt;
&lt;p&gt;Strictly speaking, this is not the process injection you are expecting. Abusing &lt;code&gt;ld.so&lt;/code&gt; can help you get your shared object (library) loaded in future processes the ELF file might …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Sun, 16 Aug 2020 00:00:00 +0800</pubDate><guid>tag:jm33.me,2020-08-16:/process-injection-on-linux.html</guid><category>R&amp;D</category><category>linux</category><category>injection</category></item><item><title>Make HTTP/2 Requests Via Proxy In Golang</title><link>https://jm33.me/make-http2-requests-via-proxy-in-golang.html</link><description>&lt;p&gt;&lt;img alt="banner" src="/img/linux-inject/goproxy.webp"/&gt;&lt;/p&gt;

&lt;h2 id="my-struggle"&gt;my struggle&lt;/h2&gt;
&lt;p&gt;i was trying to implement proxy support in &lt;a href="https://github.com/jm33-m0/emp3r0r"&gt;emp3r0r&lt;/a&gt;, but found that  &lt;code&gt;http2.Transport&lt;/code&gt; has no such option. the only option that might work is replacing &lt;code&gt;DialTLS()&lt;/code&gt; function  with a custom one&lt;/p&gt;
&lt;p&gt;i did a lot of research:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/golang/go/issues/26479"&gt;x/net/http2: support http2 proxy connections&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://play.golang.org/p/l0iLtkD1DV"&gt;the dialer hack …&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Wed, 15 Jul 2020 00:00:00 +0800</pubDate><guid>tag:jm33.me,2020-07-15:/make-http2-requests-via-proxy-in-golang.html</guid><category>Programming</category><category>HTTP2</category><category>proxy</category><category>golang</category><category>emp3r0r</category></item><item><title>Digging Into A macOS Kernel Panic</title><link>https://jm33.me/digging-into-a-macos-kernel-panic.html</link><description>&lt;p&gt;&lt;img alt="macos restart" src="/img/mac_panic/restart_problem.webp"/&gt;&lt;/p&gt;

&lt;h2 id="tldr-2021-06-09"&gt;TL;DR (2021-06-09)&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;AppleSMC&lt;/code&gt; is a kernel module that communicates with SMC (System_Management_Controller), and the SMC is basically an Apple co-processor that has its own firmware, used to manage the upper layer system including disk encryption, etc.&lt;/p&gt;
&lt;p&gt;I was able to dig into &lt;code&gt;AppleSMC&lt;/code&gt;'s backtrace and locate the spot …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Mon, 22 Jun 2020 00:00:00 +0800</pubDate><guid>tag:jm33.me,2020-06-22:/digging-into-a-macos-kernel-panic.html</guid><category>misc</category><category>macos</category><category>kernel</category><category>reversing</category></item><item><title>Delete An Entry From wtmp/btmp/utmp Log Files</title><link>https://jm33.me/delete-an-entry-from-wtmpbtmputmp-log-files.html</link><description>
&lt;p&gt;&lt;img alt="last" src="/img//xtmp/wtmp.jpg"/&gt;&lt;/p&gt;
&lt;h2 id="stop-deleting-everything"&gt;Stop Deleting Everything!&lt;/h2&gt;
&lt;p&gt;many folks like to &lt;code&gt;rm -f /var/log/*tmp&lt;/code&gt;, which I have to say is not a right way to cover your trail,
if the admin would ever think of checking login logs, an empty log will certainly catch his attention&lt;/p&gt;
&lt;p&gt;but &lt;code&gt;*tmp&lt;/code&gt; files are all binary …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Fri, 05 Jun 2020 00:00:00 +0800</pubDate><guid>tag:jm33.me,2020-06-05:/delete-an-entry-from-wtmpbtmputmp-log-files.html</guid><category>R&amp;D</category><category>pentest</category><category>post-exploitation</category><category>log cleaner</category><category>linux</category></item><item><title>404</title><link>https://jm33.me/404.html</link><description>&lt;h2 id="lost-your-way"&gt;Lost Your Way?&lt;/h2&gt;
&lt;p&gt;This page is intentionally left blank.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Mon, 20 Apr 2020 00:00:00 +0800</pubDate><guid>tag:jm33.me,2020-04-20:/404.html</guid><category>Misc</category><category>404</category></item><item><title>Set Up AD Domain Over VPN</title><link>https://jm33.me/set-up-ad-domain-over-vpn.html</link><description>
&lt;p&gt;this is the setup of my AD domain:&lt;/p&gt;
&lt;p&gt;&lt;img alt="network" src="/img/diagram.webp"/&gt;&lt;/p&gt;
&lt;h2 id="install-active-directory-domain-services-ad-ds"&gt;install Active Directory Domain Services (AD DS)&lt;/h2&gt;
&lt;h3 id="install-using-server-manager"&gt;install using server manager&lt;/h3&gt;
&lt;p&gt;assuming you are using Windows Server 2012 or later, in the server manager window, click &lt;code&gt;Manage -&amp;gt; Add roles and features&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="install ad ds" src="/img/active_dir.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;DNS Server will be installed as well&lt;/p&gt;
&lt;p&gt;i dont want to …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Mon, 20 Apr 2020 00:00:00 +0800</pubDate><guid>tag:jm33.me,2020-04-20:/set-up-ad-domain-over-vpn.html</guid><category>R&amp;D</category><category>ad</category><category>active directory</category><category>windows domain</category><category>windows</category><category>windows server</category></item><item><title>emp3r0r - 0x03</title><link>https://jm33.me/emp3r0r-0x03.html</link><description>
&lt;p&gt;this part is about port forwarding/mapping&lt;/p&gt;
&lt;p&gt;&lt;img alt="port-fwd" src="/img/port-fwd.webp"/&gt;&lt;/p&gt;
&lt;p&gt;port forwarding is extremely useful when you need to access targets lying deep inside victim's network&lt;/p&gt;
&lt;p&gt;as this simple diagram suggests, you can use port-fwd to redirect an RDP server that cannot be reached from outside&lt;/p&gt;
&lt;p&gt;linux targets are usually either IoT devices …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Wed, 11 Mar 2020 00:00:00 +0800</pubDate><guid>tag:jm33.me,2020-03-11:/emp3r0r-0x03.html</guid><category>Tools</category><category>pentest</category><category>post-exploitation</category><category>emp3r0r</category><category>linux</category><category>HTTP2</category><category>port-forwarding</category></item><item><title>An Update to MEC</title><link>https://jm33.me/an-update-to-mec.html</link><description>
&lt;h2 id="switching-to-prompt_toolkit"&gt;switching to prompt_toolkit&lt;/h2&gt;
&lt;p&gt;python's &lt;a href="https://docs.python.org/3/library/readline.html"&gt;readline module&lt;/a&gt; &lt;strong&gt;sucks&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;heres how:&lt;/p&gt;
&lt;p&gt;&lt;asciinema-player poster="data:text/plain,root@localhost~:# echo Fuck PyReadline" src="/cast/fuck-pyreadline.cast"&gt;&lt;/asciinema-player&gt;&lt;/p&gt;
&lt;p&gt;python's readline cannot handle ANSI color codes properly, when i try to use ANSI color code in the &lt;code&gt;prompt&lt;/code&gt; message,
history browsing (via up/down key) fucks the prompt up&lt;/p&gt;
&lt;p&gt;here's the code, it's from python's doc, i made a small …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Sat, 29 Feb 2020 00:00:00 +0800</pubDate><guid>tag:jm33.me,2020-02-29:/an-update-to-mec.html</guid><category>Tools</category><category>mec</category><category>mass exploit</category><category>hacking</category><category>tools</category><category>pentest</category></item><item><title>emp3r0r - 0x02</title><link>https://jm33.me/emp3r0r-0x02.html</link><description>
&lt;p&gt;this part is about reverse shell&lt;/p&gt;
&lt;p&gt;&lt;img alt="bash" src="/img/emp02/bash.webp"/&gt;&lt;/p&gt;
&lt;!-- &lt;asciinema-player src="/cast/rshell.cast" poster="npt:0:06"&gt;&lt;/asciinema-player&gt; --&gt;
&lt;h2 id="how-to-make-your-reverse-shell-suck-less"&gt;how to make your reverse shell suck less&lt;/h2&gt;
&lt;p&gt;take a look at &lt;a href="http://pentestmonkey.net/cheat-sheet/shells/reverse-shell-cheat-sheet"&gt;pentestmonkey's Reverse Shell Cheat Sheet&lt;/a&gt;,
which gives you a collection of reverse shell one-liners. each of the one-liners does the same thing -- establish a TCP connection to you,
then execute a shell …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Wed, 19 Feb 2020 00:00:00 +0800</pubDate><guid>tag:jm33.me,2020-02-19:/emp3r0r-0x02.html</guid><category>Tools</category><category>pentest</category><category>post-exploitation</category><category>emp3r0r</category><category>linux</category></item><item><title>Use `su -c` in LPE</title><link>https://jm33.me/use-su-c-in-lpe.html</link><description>&lt;p&gt;&lt;img alt="su -c" src="/img/su-c/su-prompt.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;su -c&lt;/code&gt; is convenient to use, but, when you use it in your LPE exploit, hoping it to execute your command, you will probably get&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;su: must be run from a terminal
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;the obvious solution is give it a "terminal" to run from&lt;/p&gt;
&lt;p&gt;there's a &lt;code&gt;forkpty&lt;/code&gt; function provided by &lt;code&gt;pty …&lt;/code&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Mon, 10 Feb 2020 00:00:00 +0800</pubDate><guid>tag:jm33.me,2020-02-10:/use-su-c-in-lpe.html</guid><category>R&amp;D</category></item><item><title>emp3r0r - 0x01</title><link>https://jm33.me/emp3r0r-0x01.html</link><description>&lt;p&gt;&lt;img alt="get root" src="/img/get-root.jpg"/&gt;&lt;/p&gt;

&lt;p&gt;happy Chinese new year!&lt;/p&gt;
&lt;p&gt;the coronavirus outbreak in Wuhan keeps me from going outside, actually i have cancelled all travel plans in this holiday.
what do i do at home then?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;get_root&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;this module can help you get root via:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;kernel exploits&lt;/li&gt;
&lt;li&gt;userland LPE exploits, such as exim, sudo&lt;/li&gt;
&lt;li&gt;previously-implemented …&lt;/li&gt;&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Fri, 24 Jan 2020 00:00:00 +0800</pubDate><guid>tag:jm33.me,2020-01-24:/emp3r0r-0x01.html</guid><category>Tools</category><category>pentest</category><category>post-exploitation</category><category>emp3r0r</category><category>linux</category></item><item><title>Linux Rootkit for Fun and Profit - 0x04 - emp3r0r</title><link>https://jm33.me/linux-rootkit-for-fun-and-profit-0x04-emp3r0r.html</link><description>&lt;p&gt;this is a demo of the shell feature that im working on, it supports remote file editing, and FTP-like file get/put, among other things&lt;/p&gt;
&lt;p&gt;&lt;asciinema-player src="/cast/mod_shell.cast" poster="npt:0:20"&gt;&lt;/asciinema-player&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Thu, 16 Jan 2020 00:00:00 +0800</pubDate><guid>tag:jm33.me,2020-01-16:/linux-rootkit-for-fun-and-profit-0x04-emp3r0r.html</guid><category>R&amp;D</category><category>pentest</category><category>post-exploitation</category><category>emp3r0r</category><category>linux</category></item><item><title>Killer Wireless Kills My Network</title><link>https://jm33.me/killer-wireless-kills-my-network.html</link><description>&lt;p&gt;&lt;img alt="stop killer services" src="/img/killer.png"&gt;&lt;/p&gt;
&lt;p&gt;UPDATE:&lt;/p&gt;
&lt;p&gt;windows update thinks my computer is lacking killer software, it keeps installing the shit back... why the fuck do i need the dumb ass killer network service???&lt;/p&gt;
&lt;p&gt;i want to ask you, my dear readers, do you want the fucking killer network service to "examine" every packet sent from …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Wed, 18 Dec 2019 00:00:00 +0800</pubDate><guid>tag:jm33.me,2019-12-18:/killer-wireless-kills-my-network.html</guid><category>misc</category><category>killer</category><category>network</category><category>nic</category></item><item><title>Hook System Calls in Linux 5.x</title><link>https://jm33.me/hook-system-calls-in-linux-5x.html</link><description>&lt;p&gt;&lt;img alt="success" src="/img/hook_5.x.jpg"/&gt;&lt;/p&gt;

&lt;h2 id="how-to-disable-wp-when-cr0-is-pinned"&gt;how to disable WP when cr0 is "pinned"?&lt;/h2&gt;
&lt;p&gt;you can read &lt;a href="/we-can-no-longer-easily-disable-cr0-wp-write-protection.html"&gt;my previous article&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;according to &lt;a href="https://stackoverflow.com/questions/58512430/how-to-write-to-protected-pages-in-the-linux-kernel"&gt;this stackoverflow question&lt;/a&gt;,
we cannot:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;disable CR0's Write-Protection bits&lt;/li&gt;
&lt;li&gt;set RO page to RW&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;i think ive found a solution:&lt;/p&gt;
&lt;p&gt;since lkm runs in ring0, why not just write to &lt;code&gt;cr0&lt;/code&gt; directly, why bother …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Thu, 12 Dec 2019 00:00:00 +0800</pubDate><guid>tag:jm33.me,2019-12-12:/hook-system-calls-in-linux-5x.html</guid><category>R&amp;D</category><category>pentest</category><category>rootkit</category><category>linux</category><category>lkm</category></item><item><title>We Can No Longer Easily Disable CR0 WP (Write-Protection)</title><link>https://jm33.me/we-can-no-longer-easily-disable-cr0-wp-write-protection.html</link><description>&lt;p&gt;&lt;img alt="commit" src="/img/pin_cr0.jpg"&gt;&lt;/p&gt;
&lt;p&gt;this commit makes &lt;code&gt;write_cr0(read_cr0() | 0x10000)&lt;/code&gt; useless, next time you see a 5.x linux kernel, good luck&lt;/p&gt;
&lt;p&gt;according to &lt;a href="https://stackoverflow.com/questions/58512430/how-to-write-to-protected-pages-in-the-linux-kernel"&gt;this stackoverflow question&lt;/a&gt;,
we cannot:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;disable CR0's Write-Protection bits&lt;/li&gt;
&lt;li&gt;set RO page to RW&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;i think ive found a solution:&lt;/p&gt;
&lt;p&gt;since lkm runs in ring0, why not just write to …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Thu, 12 Dec 2019 00:00:00 +0800</pubDate><guid>tag:jm33.me,2019-12-12:/we-can-no-longer-easily-disable-cr0-wp-write-protection.html</guid><category>R&amp;D</category><category>pentest</category><category>rootkit</category><category>linux</category><category>lkm</category></item><item><title>Linux Rootkit for Fun and Profit - 0x03 - LKM - Hide from ss/netstat</title><link>https://jm33.me/linux-rootkit-for-fun-and-profit-0x03-lkm-hide-from-ssnetstat.html</link><description>&lt;p&gt;&lt;strong&gt;Every technique used in this rootkit can be found from internet, I am NOT responsible for any damage you might cause using my code&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="apt" src="/img/kernel-hooking.jpeg"&gt;&lt;/p&gt;
&lt;h2 id="how-ssnetstat-fetch-tcpudp-connections"&gt;how ss/netstat fetch TCP/UDP connections&lt;/h2&gt;
&lt;p&gt;lets do a &lt;code&gt;strace netstat -antu&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;...
openat(AT_FDCWD, &amp;quot;/proc/net/tcp&amp;quot;, O_RDONLY) = 3
read(3, &amp;quot;  sl  local_address rem_address &amp;quot;..., 4096 …&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Wed, 11 Dec 2019 00:00:00 +0800</pubDate><guid>tag:jm33.me,2019-12-11:/linux-rootkit-for-fun-and-profit-0x03-lkm-hide-from-ssnetstat.html</guid><category>R&amp;D</category><category>pentest</category><category>rootkit</category><category>linux</category><category>lkm</category></item><item><title>Linux Rootkit for Fun and Profit - 0x02 - LKM - Hide files/procs</title><link>https://jm33.me/linux-rootkit-for-fun-and-profit-0x02-lkm-hide-filesprocs.html</link><description>&lt;p&gt;&lt;strong&gt;Every technique used in this rootkit can be found from internet, I am NOT responsible for any damage you might cause using my code&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="lkm" src="/img/kernel-hooking.jpeg"&gt;&lt;/p&gt;
&lt;h2 id="what-you-will-learn"&gt;what you will learn&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;how to hide files&lt;/li&gt;
&lt;li&gt;how to hide processes&lt;/li&gt;
&lt;li&gt;how to hide them better so they cant be bruteforced&lt;/li&gt;
&lt;li&gt;asmlinkage and related reversing …&lt;/li&gt;&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Fri, 06 Dec 2019 00:00:00 +0800</pubDate><guid>tag:jm33.me,2019-12-06:/linux-rootkit-for-fun-and-profit-0x02-lkm-hide-filesprocs.html</guid><category>R&amp;D</category><category>pentest</category><category>rootkit</category><category>linux</category><category>lkm</category></item><item><title>Linux Rootkit for Fun and Profit - 0x01 - LKM</title><link>https://jm33.me/linux-rootkit-for-fun-and-profit-0x01-lkm.html</link><description>&lt;p&gt;&lt;strong&gt;Every technique used in this rootkit can be found from internet, I am NOT responsible for any damage you might cause using my code&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="linux" src="/img/kernel-hooking.jpeg"&gt;&lt;/p&gt;
&lt;h2 id="what-you-will-learn"&gt;what you will learn&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;what system calls are&lt;/li&gt;
&lt;li&gt;how to hijack them&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="how-to-hook-syscalls"&gt;how to hook syscalls&lt;/h2&gt;
&lt;h3 id="what"&gt;what?&lt;/h3&gt;
&lt;p&gt;to make the magic work, you have to deceive …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Thu, 05 Dec 2019 00:00:00 +0800</pubDate><guid>tag:jm33.me,2019-12-05:/linux-rootkit-for-fun-and-profit-0x01-lkm.html</guid><category>R&amp;D</category><category>pentest</category><category>rootkit</category><category>linux</category><category>lkm</category></item><item><title>Linux Rootkit for Fun and Profit - 0x00 - Design</title><link>https://jm33.me/linux-rootkit-for-fun-and-profit-0x00-design.html</link><description>&lt;p&gt;&lt;strong&gt;Every technique used in this rootkit can be found from internet, I am NOT responsible for any damage you might cause using my code&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="apt" src="/img/apt.jpg"&gt;&lt;/p&gt;
&lt;h2 id="what-to-expect"&gt;what to expect&lt;/h2&gt;
&lt;p&gt;i plan to write a rootkit that runs in both kernel and user space, in which case it:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;requires root when using LKM …&lt;/li&gt;&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Wed, 04 Dec 2019 00:00:00 +0800</pubDate><guid>tag:jm33.me,2019-12-04:/linux-rootkit-for-fun-and-profit-0x00-design.html</guid><category>R&amp;D</category><category>pentest</category><category>rootkit</category><category>linux</category><category>lkm</category></item><item><title>CVE-2019-13272: Linux LPE via 'PTRACE_TRACEME'</title><link>https://jm33.me/cve-2019-13272-linux-lpe-via-ptrace_traceme.html</link><description>&lt;p&gt;&lt;img alt="banner" src="/img/traceme/banner.jpg"&gt;&lt;/p&gt;
&lt;h2 id="what-is-ptrace"&gt;what is ptrace&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;ptrace()&lt;/code&gt; system call stands for &lt;em&gt;process trace&lt;/em&gt;, which provides a way for debuggers such as gdb/strace to control a process (tracee). "debuggers" can be any process that sends a &lt;code&gt;PTRACE_ATTACH&lt;/code&gt;/&lt;code&gt;PTRACE_SEIZE&lt;/code&gt;, or receives a &lt;code&gt;PTRACE_TRACEME&lt;/code&gt; from its child.&lt;/p&gt;
&lt;p&gt;several things to notice:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;a tracee's ptrace relationship …&lt;/li&gt;&lt;/ol&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Fri, 23 Aug 2019 00:00:00 +0800</pubDate><guid>tag:jm33.me,2019-08-23:/cve-2019-13272-linux-lpe-via-ptrace_traceme.html</guid><category>Vulnerabilities</category><category>CVE</category><category>LPE</category><category>Linux</category><category>PTRACE_TRACEME</category><category>ptrace</category><category>exploit</category></item><item><title>CVE-2019-12735: Vim/NeoVim modeline RCE漏洞分析</title><link>https://jm33.me/cve-2019-12735-vimneovim-modeline-rcelou-dong-fen-xi.html</link><description>&lt;p&gt;&lt;img alt="vim" src="/img/vim-rce/vimlogo.png"&gt;&lt;/p&gt;
&lt;h2 id="_1"&gt;一． 漏洞背景&lt;/h2&gt;
&lt;p&gt;Vim和Neovim是Unix类操作系统下广泛使用的文本编辑器，其中后者的开发基于前者。
Vim/Neovim中的modeline功能可以让用户在文本文件的开头或结尾使用特定代码来控制编辑器的一些行为。这个功能被限制到仅能执行特定set指令，且有沙箱隔离，但:source!指令却可以用来绕 …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Sat, 29 Jun 2019 00:00:00 +0800</pubDate><guid>tag:jm33.me,2019-06-29:/cve-2019-12735-vimneovim-modeline-rcelou-dong-fen-xi.html</guid><category>Vulnerabilities</category></item><item><title>CVE-2018-18955 - A Handy LPE for Newer Linux Kernels</title><link>https://jm33.me/cve-2018-18955-a-handy-lpe-for-newer-linux-kernels.html</link><description>&lt;p&gt;&lt;img alt="banner" src="/img/cve-2018-18955.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.freebuf.com/vuls/197122.html"&gt;中文版已发Freebuf&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;theres no posts about this cve as far as i know, and the original advisory is just too difficult for newbies like me, so..&lt;/p&gt;
&lt;h2 id="warm-up"&gt;warm up&lt;/h2&gt;
&lt;h3 id="whats-user-namespace"&gt;whats user namespace&lt;/h3&gt;
&lt;p&gt;lets assume you use linux, &lt;code&gt;man user_namespaces&lt;/code&gt; will give you what you need&lt;/p&gt;
&lt;p&gt;in case …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Thu, 24 Jan 2019 00:00:00 +0800</pubDate><guid>tag:jm33.me,2019-01-24:/cve-2018-18955-a-handy-lpe-for-newer-linux-kernels.html</guid><category>Vulnerabilities</category><category>CVE</category><category>CVE-2018-18955</category><category>linux kernel</category><category>namespace</category><category>privilege escalation</category></item><item><title>An RCE Approach of CVE-2018-7750</title><link>https://jm33.me/an-rce-approach-of-cve-2018-7750.html</link><description>&lt;p&gt;&lt;img alt="paramiko logo" src="/img/paramiko_ssh.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.paramiko.org"&gt;paramiko&lt;/a&gt; has an auth bypass vuln (found in March 2018), ie. &lt;a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-7750"&gt;CVE-2018-7750&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;which can be leveraged to execute arbitrary command (if the ssh server implementation supports command execution)&lt;/p&gt;
&lt;h2 id="affects"&gt;affects&lt;/h2&gt;
&lt;p&gt;anything that uses &lt;code&gt;paramiko&lt;/code&gt; for ssh implementation, we can do things on it, unauthed&lt;/p&gt;
&lt;h2 id="exploit"&gt;exploit&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.com/jm33-m0/CVE-2018-7750"&gt;https://github.com/jm33-m0/CVE-2018-7750&lt;/a&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# Exploit …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Wed, 07 Nov 2018 00:00:00 +0800</pubDate><guid>tag:jm33.me,2018-11-07:/an-rce-approach-of-cve-2018-7750.html</guid><category>Vulnerabilities</category><category>CVE-2018-7750</category><category>paramiko</category><category>RCE</category><category>exploit</category><category>CVE</category></item><item><title>Write Better Linux Rootkits</title><link>https://jm33.me/write-better-linux-rootkits.html</link><description>
&lt;p&gt;&lt;a href="https://www.freebuf.com/column/188100.html"&gt;有个中文版在Freebuf，需要的可以去看看&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="linux rootkit" src="/img/rootkit-linux.jpg"/&gt;&lt;/p&gt;
&lt;h2 id="dig-deeper-into-user-space"&gt;dig deeper into user space&lt;/h2&gt;
&lt;h3 id="lets-abuse-inits"&gt;lets abuse inits&lt;/h3&gt;
&lt;h4 id="the-init"&gt;the INIT&lt;/h4&gt;
&lt;p&gt;a lot of script kiddies know how to write their own SysV service file or modify the existing ones, fortunate for them, SysVinit is still …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Thu, 01 Nov 2018 00:00:00 +0800</pubDate><guid>tag:jm33.me,2018-11-01:/write-better-linux-rootkits.html</guid><category>R&amp;D</category><category>linux</category><category>rootkit</category><category>lkm</category></item><item><title>Enabling New PGP Key</title><link>https://jm33.me/enabling-new-pgp-key.html</link><description>&lt;p&gt;hi all, ive created &lt;a href="https://pgp.mit.edu/pks/lookup?op=get&amp;amp;search=0xD73C51683A5DBF07"&gt;new PGP key&lt;/a&gt; for my personal email address, and the old one &lt;a href="https://pgp.mit.edu/pks/lookup?op=get&amp;amp;search=0x43B63A9B73690B57"&gt;73690B57&lt;/a&gt; is being deprecated&lt;/p&gt;
&lt;p&gt;ill not respond to unencrypted emails&lt;/p&gt;
&lt;p&gt;also, feel free to exchange public key in the comment section&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Fri, 19 Oct 2018 00:00:00 +0800</pubDate><guid>tag:jm33.me,2018-10-19:/enabling-new-pgp-key.html</guid><category>misc</category><category>announcement</category></item><item><title>How To Run GUI Programs With sudo Under Wayland</title><link>https://jm33.me/how-to-run-gui-programs-with-sudo-under-wayland.html</link><description>&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;xhost +si:localuser:root
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Tue, 14 Aug 2018 00:00:00 +0800</pubDate><guid>tag:jm33.me,2018-08-14:/how-to-run-gui-programs-with-sudo-under-wayland.html</guid><category>misc</category><category>wayland</category><category>sudo</category><category>xhost</category></item><item><title>Working in TMUX</title><link>https://jm33.me/working-in-tmux.html</link><description>&lt;h2 id="why-tmux"&gt;why tmux&lt;/h2&gt;
&lt;p&gt;i believe anyone who is new to tmux can be frustrated by its "ugly" user interface and weird key bindings (especially those who don't use vim very often). "why the hell is this ugly terminal tool called a productivity tool?", well, just like vim/zsh, with a little …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Sun, 12 Aug 2018 00:00:00 +0800</pubDate><guid>tag:jm33.me,2018-08-12:/working-in-tmux.html</guid><category>misc</category><category>TMUX</category><category>vim</category></item><item><title>Use Shadowsocks as Transparent Proxy (like GFW doesn't exist)</title><link>https://jm33.me/use-shadowsocks-as-transparent-proxy-like-gfw-doesnt-exist.html</link><description>&lt;p&gt;&lt;img alt="gfw" src="/img/gfw.jpeg"&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;this transparent proxy depends on iptables, which means generally you can only use it on Linux&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="what-you-are-getting"&gt;what you are getting&lt;/h2&gt;
&lt;p&gt;an always-on proxy that redirects all TCP/UDP traffic to your Shadowsocks proxy
while bypassing a list of IP ranges
a clean connection to foreign DNS server, bye bye DNS …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Tue, 24 Jul 2018 00:00:00 +0800</pubDate><guid>tag:jm33.me,2018-07-24:/use-shadowsocks-as-transparent-proxy-like-gfw-doesnt-exist.html</guid><category>misc</category><category>greatwall</category><category>shadowsocks</category><category>trasparent proxy</category></item><item><title>To My Graduation</title><link>https://jm33.me/to-my-graduation.html</link><description>&lt;p&gt;&lt;img alt="126" src="/img/126.jpg"&gt;&lt;/p&gt;
&lt;p&gt;i was living near my campus for the whole last month, because of which, i barely felt anything when everyone was saying goodbye to each other. i could still go to my school for food or fun, just like before.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;the only difference i noticed, was that i can never …&lt;/strong&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Sun, 15 Jul 2018 00:00:00 +0800</pubDate><guid>tag:jm33.me,2018-07-15:/to-my-graduation.html</guid><category>misc</category><category>Diary</category></item><item><title>Parsing Large XML With Go</title><link>https://jm33.me/parsing-large-xml-with-go.html</link><description>&lt;p&gt;i have a huge XML file (about 700MB) generated by masscan, initially i was trying to use &lt;a href="https://github.com/offensive-security/masscan-web-ui"&gt;masscan-web-ui&lt;/a&gt; to parse the file, which was extremely slow of course (have to admit that Offensive Security has done a great job for turning masscan into a Shodan/ZoomEye like search engine). then …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Sun, 26 Nov 2017 00:00:00 +0800</pubDate><guid>tag:jm33.me,2017-11-26:/parsing-large-xml-with-go.html</guid><category>Programming</category><category>golang</category><category>xml</category></item><item><title>How to Use Cisco Anyconnect VPN - Certificate based authentication</title><link>https://jm33.me/how-to-use-cisco-anyconnect-vpn-certificate-based-authentication.html</link><description>&lt;p&gt;&lt;strong&gt;&lt;a href="https://jm33.me/ru-he-shi-yong-cisco-anyconnect-vpn-ji-yu-zheng-shu-de-ren-zheng.html"&gt;中文版&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#read-me"&gt;Read me&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#disclaimer"&gt;Disclaimer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#error"&gt;Error?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#trusted-downloads"&gt;Trusted Downloads&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#windows-pc"&gt;Windows PC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#android"&gt;Android&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#ios"&gt;iOS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#bb10"&gt;BB10&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="read-me"&gt;Read me&lt;/h2&gt;
&lt;h3 id="disclaimer"&gt;Disclaimer&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;i've tested Android and Windows version myself, but i can't guarantee the accuracy of my tutorials for &lt;strong&gt;iOS and BB10&lt;/strong&gt; since i don't have those devices, and the screenshots are contributions from other …&lt;/li&gt;&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Mon, 30 Oct 2017 00:00:00 +0800</pubDate><guid>tag:jm33.me,2017-10-30:/how-to-use-cisco-anyconnect-vpn-certificate-based-authentication.html</guid><category>misc</category><category>cisco</category><category>anyconnect</category><category>vpn</category><category>great wall</category></item><item><title>如何使用Cisco Anyconnect VPN - 基于证书的认证</title><link>https://jm33.me/ru-he-shi-yong-cisco-anyconnect-vpn-ji-yu-zheng-shu-de-ren-zheng.html</link><description>
&lt;h2 id="read-me"&gt;Read me&lt;/h2&gt;
&lt;h3 id="disclaimer"&gt;Disclaimer&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;我已经测试了Android和Windows版本，但我不能保证 &lt;strong&gt;iOS和BB10&lt;/strong&gt; 的教程的准确性，因为我没有这些设备，屏幕截图是其他用户的贡献&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="_1"&gt;提醒&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;保持您 …&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Sun, 29 Oct 2017 00:00:00 +0800</pubDate><guid>tag:jm33.me,2017-10-29:/ru-he-shi-yong-cisco-anyconnect-vpn-ji-yu-zheng-shu-de-ren-zheng.html</guid><category>misc</category><category>cisco</category><category>vpn</category><category>anyconnect</category><category>great wall</category></item><item><title>MassExpConsle - User Guide</title><link>https://jm33.me/massexpconsle-user-guide.html</link><description>
&lt;p&gt;&lt;em&gt;&lt;a href="https://github.com/jm33-m0/massExpConsole"&gt;https://github.com/jm33-m0/massExpConsole&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;thank you all for your support&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img alt="mec" src="/img/mec-0601-min.png"/&gt;&lt;/p&gt;
&lt;h2 id="what-it-does"&gt;what it does&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;an easy-to-use cli ui&lt;/li&gt;
&lt;li&gt;execute any adpated exploits with &lt;strong&gt;process-level concurrency&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;some built-in exploits (automated)&lt;/li&gt;
&lt;li&gt;zoomeye host scan (10 threads)&lt;/li&gt;
&lt;li&gt;google page crawler with gecko and firefox (not fully working)&lt;/li&gt;
&lt;li&gt;a simple baidu crawler (multi-threaded)&lt;/li&gt;
&lt;li&gt;webshell …&lt;/li&gt;&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Thu, 01 Jun 2017 00:00:00 +0800</pubDate><guid>tag:jm33.me,2017-06-01:/massexpconsle-user-guide.html</guid><category>Tools</category><category>mec</category><category>mass exploit</category><category>hacking</category><category>tools</category></item><item><title>A Hacking Console - Rewritten</title><link>https://jm33.me/a-hacking-console-rewritten.html</link><description>
&lt;h1 id="massexpconsole"&gt;MassExpConsole&lt;/h1&gt;
&lt;p&gt;adding more exploits and tools&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/jm33-m0/massExpConsole" title="View on GitHub"&gt;https://github.com/jm33-m0/massExpConsole&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="screenshot" src="/img/mec-pep8.png"/&gt;&lt;/p&gt;
&lt;h2 id="whats-new"&gt;what's new&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;ZoomEye search engine is now more usable, as it saves user credentials to reduce the frequency of user having to re-login to gain their new token&lt;/li&gt;
&lt;li&gt;improved exception handling, expect less confusing exceptions&lt;/li&gt;
&lt;li&gt;most code has been …&lt;/li&gt;&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Thu, 11 May 2017 00:00:00 +0800</pubDate><guid>tag:jm33.me,2017-05-11:/a-hacking-console-rewritten.html</guid><category>Tools</category><category>pep8</category><category>pythonic</category><category>code maintainance</category><category>mec</category><category>mass exploit</category><category>hacking</category><category>tools</category></item><item><title>A Hacking Console (Upgraded) - massExploitConsole</title><link>https://jm33.me/a-hacking-console-upgraded-massexploitconsole.html</link><description>
&lt;h1 id="massexploitconsole"&gt;massExploitConsole&lt;/h1&gt;
&lt;p&gt;a collection of tools with a cli ui&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/jm33-m0/massExpConsole" title="View on GitHub"&gt;https://github.com/jm33-m0/massExpConsole&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="screenshot"&gt;screenshot&lt;/h2&gt;
&lt;p&gt;&lt;img alt="mec" src="/img/mec.png"/&gt;&lt;/p&gt;
&lt;h2 id="what-does-it-do"&gt;what does it do?&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;an easy-to-use user interface (cli)&lt;/li&gt;
&lt;li&gt;execute any adapted exploit with process-level concurrency&lt;/li&gt;
&lt;li&gt;crawler for baidu and zoomeye&lt;/li&gt;
&lt;li&gt;a simple webshell manager&lt;/li&gt;
&lt;li&gt;some built-in exploits (automated)&lt;/li&gt;
&lt;li&gt;more to come...&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="requirements"&gt;requirements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;GNU/Linux …&lt;/li&gt;&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Mon, 24 Apr 2017 00:00:00 +0800</pubDate><guid>tag:jm33.me,2017-04-24:/a-hacking-console-upgraded-massexploitconsole.html</guid><category>Tools</category><category>mec</category><category>mass exploit</category><category>hacking</category><category>tools</category></item><item><title>A Hacking Console</title><link>https://jm33.me/a-hacking-console.html</link><description>&lt;h2 id="github-repo"&gt;GitHub repo&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.com/jm33-m0/b0t-br0kr"&gt;https://github.com/jm33-m0/b0t-br0kr&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="a-collection-of-my-tools"&gt;a collection of my tools&lt;/h2&gt;
&lt;p&gt;as you can see among the tags, &lt;s&gt;i wrote this tool mainly to automate some heavy pentest work&lt;/s&gt;, and more importantly, to make my life easier. emmm, im sure you wanna know what you will get from this …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Sat, 11 Mar 2017 00:00:00 +0800</pubDate><guid>tag:jm33.me,2017-03-11:/a-hacking-console.html</guid><category>R&amp;D</category><category>hacking tool</category><category>mass exploit</category><category>blackhat</category><category>pentest</category><category>s2-045</category><category>zoomeye</category><category>baidu</category><category>multi-threaded crawler</category></item><item><title>极路由3 LEDE + Shadowsocks + Mentohust (含所需文件tarball下载)</title><link>https://jm33.me/ji-lu-you-3-lede-shadowsocks-mentohust-han-suo-xu-wen-jian-tarballxia-zai.html</link><description>&lt;h2 id="_1"&gt;链接&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/files/lede_pkgs.tar.gz"&gt;https://jm33.me/files/lede_pkgs.tar.gz (Shadowsocks，Mentohust及它们的依赖包下载)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="_2"&gt;已知问题&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;5G WiFi默认无法使用&lt;/li&gt;
&lt;li&gt;MAC重写无法使用&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="breed"&gt;刷机与Breed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;请参考&lt;a href="https://www.binss.me/blog/install-openwrt-on-hiwifi-router/"&gt;极路由刷OpenWrt最强攻略——从救砖、刷Breed、编译固件到安装配置
&lt;/a&gt;, 虽然是针对OpenWRT的 …&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Tue, 21 Feb 2017 00:00:00 +0800</pubDate><guid>tag:jm33.me,2017-02-21:/ji-lu-you-3-lede-shadowsocks-mentohust-han-suo-xu-wen-jian-tarballxia-zai.html</guid><category>misc</category><category>shadowsocks</category><category>greatwall</category><category>mentohust</category><category>lede</category><category>极路由</category></item><item><title>Using KCPTUN to Speed Up Your Proxy</title><link>https://jm33.me/using-kcptun-to-speed-up-your-proxy.html</link><description>&lt;h2 id="kcp-with-shadowsocks-shadowsockskcp"&gt;KCP with Shadowsocks / 配合Shadowsocks的KCP加速&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;If you were using &lt;a href="https://github.com/shadowsocks-plus/Shadowsocks-Plus-Win"&gt;Shadowsocks Plus for Windows&lt;/a&gt;, KCP is implemented already, no further configuration is needed / 如果你在使用&lt;a href="https://github.com/shadowsocks-plus/Shadowsocks-Plus-Win"&gt;Shadowsocks Plus for Windows&lt;/a&gt;，那么KCP已经启用，无须额外配置&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="shadowsocks-for-android"&gt;Shadowsocks for Android&lt;/h3&gt;
&lt;hr&gt;
&lt;p&gt;After finishing your setup, just …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Thu, 01 Dec 2016 00:00:00 +0800</pubDate><guid>tag:jm33.me,2016-12-01:/using-kcptun-to-speed-up-your-proxy.html</guid><category>misc</category><category>KCP</category><category>shadowsocks</category><category>greatwall</category><category>anyconnect</category><category>vpn</category></item><item><title>No Title</title><link>https://jm33.me/no-title.html</link><description>&lt;h2 id="its-getting-colder"&gt;It's getting colder...&lt;/h2&gt;
&lt;p&gt;We are expecting the first snow of this year&lt;/p&gt;
&lt;h2 id="recent-screenshots"&gt;Recent screenshots&lt;/h2&gt;
&lt;p&gt;&lt;img alt="exploit" src="/img/exp.jpg"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="joomla" src="/img/joomla.jpg"&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Mon, 21 Nov 2016 00:00:00 +0800</pubDate><guid>tag:jm33.me,2016-11-21:/no-title.html</guid><category>misc</category><category>exploit</category><category>scanner</category></item><item><title>Using Obfs4proxy to obfuscate your non-TOR proxy / 为Shadowsocks路由器增加Obfs4混淆</title><link>https://jm33.me/using-obfs4proxy-to-obfuscate-your-non-tor-proxy-wei-shadowsockslu-you-qi-zeng-jia-obfs4hun-yao.html</link><description>&lt;h3 id="you-probably-need-obfs4-in-my-country"&gt;You probably need obfs4 in my country&lt;/h3&gt;
&lt;p&gt;Censorship is the most famous part of internet in China, they actively attack users with packet analysis and proxy detection, which sets a tech barrier to most people who want to access international websites without tech background&lt;/p&gt;
&lt;p&gt;I am unsure that my proxy …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Wed, 12 Oct 2016 00:00:00 +0800</pubDate><guid>tag:jm33.me,2016-10-12:/using-obfs4proxy-to-obfuscate-your-non-tor-proxy-wei-shadowsockslu-you-qi-zeng-jia-obfs4hun-yao.html</guid><category>misc</category><category>obfs4</category><category>shadowsocks</category><category>greatwall</category></item><item><title>搭建Cisco Anyconnect VPN服务器</title><link>https://jm33.me/da-jian-cisco-anyconnect-vpnfu-wu-qi.html</link><description>&lt;h3 id="_1"&gt;自动化脚本&lt;/h3&gt;
&lt;p&gt;如果你使用 Ubuntu (&amp;gt;=16.04) / Debian(&amp;gt;=9), 可以尝试使用我的自动配置。
in case 你用的发行版软件源中没有&lt;code&gt;ocserv&lt;/code&gt;，你可以自己编译最 …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Thu, 06 Oct 2016 00:00:00 +0800</pubDate><guid>tag:jm33.me,2016-10-06:/da-jian-cisco-anyconnect-vpnfu-wu-qi.html</guid><category>misc</category><category>ocserv</category><category>cisco</category><category>vpn</category><category>greatwall</category><category>anyconnect</category></item><item><title>A reverse shell written in Golang</title><link>https://jm33.me/a-reverse-shell-written-in-golang.html</link><description>&lt;h3 id="github-repo"&gt;Github repo&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/jm33-m0/go-reverse-shell"&gt;https://github.com/jm33-m0/go-reverse-shell&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="why-golang"&gt;Why Golang?&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;s&gt;'coz I don't know C&lt;/s&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Cross platform&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;absolutely so! I only need to specify a target system/arch, and Go will compile it for me no matter what system I am using to compile
guess what? if you choose C, you …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Sun, 02 Oct 2016 00:00:00 +0800</pubDate><guid>tag:jm33.me,2016-10-02:/a-reverse-shell-written-in-golang.html</guid><category>Programming</category><category>golang</category><category>reverse shell</category><category>antivirus</category></item><item><title>Switched to Xfce4 Desktop</title><link>https://jm33.me/switched-to-xfce4-desktop.html</link><description>&lt;h3 id="why"&gt;Why?&lt;/h3&gt;
&lt;p&gt;Got tired of KDE, plus that KDE replaced my custom splash screen with its default one, I then decided to configure Xfce4 as my main DE for at least the next month&lt;/p&gt;
&lt;h3 id="how-does-it-look"&gt;How does it look?&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Here is my screenshot:&lt;/p&gt;
&lt;p&gt;&lt;img alt="xfce4 screenshot" src="/img/new-env.jpg"&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Have to admit, Xfce4 consumes little system resources, and …&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Sat, 24 Sep 2016 00:00:00 +0800</pubDate><guid>tag:jm33.me,2016-09-24:/switched-to-xfce4-desktop.html</guid><category>misc</category><category>xfce4</category><category>compton</category><category>xfwm</category><category>virtualbox</category><category>pentest</category></item><item><title>使用Shadowsocks-Plus整合KCPTUN加速</title><link>https://jm33.me/shi-yong-shadowsocks-pluszheng-he-kcptunjia-su.html</link><description>&lt;h2 id="why-kcptun"&gt;Why KCPTUN?&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;KCP是一个快速可靠协议，能以比 TCP浪费10%-20%的带宽的代价，换取平均延迟降低 30%-40%，且最大延迟降低三倍的传输效果。纯算法实现，并不负责底层协 …&lt;/p&gt;&lt;/blockquote&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Fri, 26 Aug 2016 00:00:00 +0800</pubDate><guid>tag:jm33.me,2016-08-26:/shi-yong-shadowsocks-pluszheng-he-kcptunjia-su.html</guid><category>Programming</category><category>shadowsocks-plus</category><category>kcptun</category><category>gfw</category><category>proxy</category><category>Windows</category></item><item><title>My First C-Sharp Project</title><link>https://jm33.me/my-first-c-sharp-project.html</link><description>&lt;h2 id="shadowsocks-plus-win"&gt;Shadowsocks-Plus-Win&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;You can find its Github homepage &lt;a href="https://github.com/shadowsocks-plus/Shadowsocks-Plus-Win"&gt;here&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="what-i-want-to-say"&gt;What I want to say&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;C# with &lt;em&gt;.Net&lt;/em&gt; is actually the best language for developing Windows apps&lt;/li&gt;
&lt;li&gt;Haven't used C# before, I heard it's a Java-like language (dunno Java, either) for Windows&lt;/li&gt;
&lt;li&gt;I'm learning a lot from developing this... (thanks to Visual …&lt;/li&gt;&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Thu, 25 Aug 2016 00:00:00 +0800</pubDate><guid>tag:jm33.me,2016-08-25:/my-first-c-sharp-project.html</guid><category>programming</category><category>Shadowsocks-Plus</category><category>C#</category><category>project</category><category>github</category></item><item><title>Cryptography - Week 1</title><link>https://jm33.me/cryptography-week-1.html</link><description>
&lt;h2 id="tl-dr"&gt;TL; DR&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Sym. encryption&lt;/li&gt;
&lt;li&gt;One Time Pad&lt;/li&gt;
&lt;li&gt;Shannon: Perfect secrecy&lt;/li&gt;
&lt;li&gt;History - Badly broken algorithms&lt;/li&gt;
&lt;li&gt;Stream cipher - OTP in real life&lt;/li&gt;
&lt;li&gt;Probability basics&lt;/li&gt;
&lt;li&gt;Pseudo random gen - predictable&lt;/li&gt;
&lt;li&gt;Negligible / Non-negligible&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="topics"&gt;Topics&lt;/h2&gt;
&lt;h3 id="sym-encryption-definition"&gt;Sym. encryption definition&lt;/h3&gt;
&lt;h4 id="what"&gt;What&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Sender and receiver use the same secret key for encryption and decryption,&lt;/li&gt;
&lt;li&gt;or the same encryption scheme …&lt;/li&gt;&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Wed, 17 Aug 2016 00:00:00 +0800</pubDate><guid>tag:jm33.me,2016-08-17:/cryptography-week-1.html</guid><category>misc</category><category>crypto</category><category>Coursera</category><category>Stanford</category></item><item><title>极路由hosts修改 (无行数限制)</title><link>https://jm33.me/ji-lu-you-hostsxiu-gai-wu-xing-shu-xian-zhi.html</link><description>&lt;h2 id="tl-dr"&gt;TL; DR&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;我在&lt;a href="https://github.com/jm33-m0/hiwifi_scripts" title="Github"&gt;hiwifi_scripts&lt;/a&gt;项目里改写的一个Shadowsocks插件无法实现远程解析被污染的域名&lt;/li&gt;
&lt;li&gt;所以我在看了DNSCrypt等解决方案之后最终决定使用成熟的&lt;a href="https://github.com/racaljk/hosts"&gt;hosts&lt;/a&gt;项目提供的不断更新的hosts文件来解决DNS污染的问题&lt;/li&gt;
&lt;li&gt;从而保证了防污染DNS解析不会影响整体网络性能表现&lt;/li&gt;
&lt;li&gt;该sh脚本会把自己添加成cron job，定时检查hosts文件更新并自动应用修改 …&lt;/li&gt;&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Thu, 04 Aug 2016 00:00:00 +0800</pubDate><guid>tag:jm33.me,2016-08-04:/ji-lu-you-hostsxiu-gai-wu-xing-shu-xian-zhi.html</guid><category>misc</category><category>极路由</category><category>SS</category><category>censorship</category><category>DNS污染</category></item><item><title>NetCat - File Transfer and More</title><link>https://jm33.me/netcat-file-transfer-and-more.html</link><description>&lt;h2 id="what-is-netcat"&gt;What is &lt;em&gt;NetCat&lt;/em&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;According to its manual: &lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="w"&gt;    &lt;/span&gt;Netcat&lt;span class="w"&gt; &lt;/span&gt;is&lt;span class="w"&gt; &lt;/span&gt;a&lt;span class="w"&gt; &lt;/span&gt;simple&lt;span class="w"&gt; &lt;/span&gt;Unix&lt;span class="w"&gt; &lt;/span&gt;utility&lt;span class="w"&gt; &lt;/span&gt;which&lt;span class="w"&gt; &lt;/span&gt;reads&lt;span class="w"&gt; &lt;/span&gt;and&lt;span class="w"&gt; &lt;/span&gt;writes&lt;span class="w"&gt; &lt;/span&gt;data&lt;span class="w"&gt; &lt;/span&gt;across&lt;span class="w"&gt; &lt;/span&gt;network&lt;span class="w"&gt; &lt;/span&gt;connections,&lt;span class="w"&gt; &lt;/span&gt;using&lt;span class="w"&gt; &lt;/span&gt;TCP&lt;span class="w"&gt; &lt;/span&gt;or&lt;span class="w"&gt; &lt;/span&gt;UDP&lt;span class="w"&gt; &lt;/span&gt;protocol.&lt;span class="w"&gt; &lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;It&lt;span class="w"&gt; &lt;/span&gt;is&lt;span class="w"&gt; &lt;/span&gt;designed&lt;span class="w"&gt; &lt;/span&gt;to&lt;span class="w"&gt; &lt;/span&gt;be&lt;span class="w"&gt; &lt;/span&gt;a&lt;span class="w"&gt; &lt;/span&gt;reliable&lt;span class="w"&gt; &lt;/span&gt;&amp;quot;back-end&amp;quot;&lt;span class="w"&gt; &lt;/span&gt;tool&lt;span class="w"&gt; &lt;/span&gt;that&lt;span class="w"&gt; &lt;/span&gt;can&lt;span class="w"&gt; &lt;/span&gt;be&lt;span class="w"&gt; &lt;/span&gt;used&lt;span class="w"&gt; &lt;/span&gt;directly&lt;span class="w"&gt; &lt;/span&gt;or&lt;span class="w"&gt; &lt;/span&gt;easily&lt;span class="w"&gt; &lt;/span&gt;driven&lt;span class="w"&gt; &lt;/span&gt;by&lt;span class="w"&gt; &lt;/span&gt;other&lt;span class="w"&gt; &lt;/span&gt;programs&lt;span class="w"&gt; &lt;/span&gt;and&lt;span class="w"&gt; &lt;/span&gt;scripts.&lt;span class="w"&gt;  &lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;At&lt;span class="w"&gt; &lt;/span&gt;the …&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Sun, 24 Jul 2016 00:00:00 +0800</pubDate><guid>tag:jm33.me,2016-07-24:/netcat-file-transfer-and-more.html</guid><category>R&amp;D</category><category>netcat</category><category>reverse shell</category><category>file transfer</category><category>post exploitation</category></item><item><title>极路由4使用Shadowsocks插件（含web配置面板）</title><link>https://jm33.me/ji-lu-you-4shi-yong-shadowsockscha-jian-han-webpei-zhi-mian-ban.html</link><description>&lt;blockquote&gt;
&lt;p&gt;本插件会持续更新，请以&lt;a href="https://github.com/jm33-m0/hiwifi_scripts/"&gt;Github&lt;/a&gt;发布的内容为准&lt;/p&gt;
&lt;p&gt;提供相关代理服务器(无流量限制)和技术支持，请点击&lt;a href="https://jm33.me/pages/fgfw.html"&gt;https://jm33.me/pages/fgfw.html&lt;/a&gt;了解详情 …&lt;/p&gt;&lt;/blockquote&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Sat, 16 Jul 2016 00:00:00 +0800</pubDate><guid>tag:jm33.me,2016-07-16:/ji-lu-you-4shi-yong-shadowsockscha-jian-han-webpei-zhi-mian-ban.html</guid><category>Programming</category><category>HiWiFi</category><category>极路由</category><category>ss</category><category>greatwall</category><category>censorship</category></item><item><title>Secure Your Email with PGP</title><link>https://jm33.me/secure-your-email-with-pgp.html</link><description>
&lt;h2 id="background"&gt;Background&lt;/h2&gt;
&lt;p&gt;Almost a decade ago I wrote this article showing how to use PGP to secure your emails. Today I decide to rewrite it, to make it useful in 2025, and to instruct people who might want to encrypt their communication with me but don't know how.&lt;/p&gt;
&lt;p&gt;This is a …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Sat, 04 Jun 2016 00:00:00 +0800</pubDate><guid>tag:jm33.me,2016-06-04:/secure-your-email-with-pgp.html</guid><category>misc</category><category>PGP</category><category>cryptography</category><category>email</category><category>censorship</category></item><item><title>Using OCSERV On An HTTPS server</title><link>https://jm33.me/using-ocserv-on-an-https-server.html</link><description>&lt;h2 id="what-happened"&gt;What happened&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Using &lt;em&gt;ocserv 0.11.1&lt;/em&gt; on &lt;em&gt;Debian Stretch&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;ocserv&lt;span class="w"&gt; &lt;/span&gt;0.11.1

Compiled&lt;span class="w"&gt; &lt;/span&gt;with&lt;span class="w"&gt; &lt;/span&gt;seccomp,&lt;span class="w"&gt; &lt;/span&gt;tcp-wrappers,&lt;span class="w"&gt; &lt;/span&gt;oath,&lt;span class="w"&gt; &lt;/span&gt;gssapi,&lt;span class="w"&gt; &lt;/span&gt;PAM,&lt;span class="w"&gt; &lt;/span&gt;PKCS#11,&lt;span class="w"&gt; &lt;/span&gt;AnyConnect,&lt;span class="w"&gt; &lt;/span&gt;
GnuTLS&lt;span class="w"&gt; &lt;/span&gt;version:&lt;span class="w"&gt; &lt;/span&gt;3.4.12&lt;span class="w"&gt; &lt;/span&gt;(compiled&lt;span class="w"&gt; &lt;/span&gt;with&lt;span class="w"&gt; &lt;/span&gt;3.4.10)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;By default, &lt;em&gt;ocserv&lt;/em&gt; creates &lt;code&gt;ocserv.socket&lt;/code&gt; that listens on &lt;code&gt;port 443&lt;/code&gt;, and you usually can't figure …&lt;/li&gt;&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Thu, 26 May 2016 00:00:00 +0800</pubDate><guid>tag:jm33.me,2016-05-26:/using-ocserv-on-an-https-server.html</guid><category>misc</category><category>ocserv</category><category>apache</category><category>systemd</category><category>socket</category><category>https</category><category>443</category></item><item><title>Build Your Own Anyconnect VPN</title><link>https://jm33.me/build-your-own-anyconnect-vpn.html</link><description>&lt;h2 id="tl-dr"&gt;TL; DR&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;As many fellow Chinese users might need this guide, I will add Chinese translation to this article&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;You may encounter errors like &lt;code&gt;The secure gateway has rejected the connection attempt.&lt;/code&gt; Well, I will tell you how to solve problems like that&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;You will also find instructions about how …&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Wed, 25 May 2016 00:00:00 +0800</pubDate><guid>tag:jm33.me,2016-05-25:/build-your-own-anyconnect-vpn.html</guid><category>misc</category><category>ocserv</category><category>cisco</category><category>anyconnect</category><category>vpn</category><category>greatwall</category></item><item><title>Enabling HTTP2</title><link>https://jm33.me/enabling-http2.html</link><description>&lt;h2 id="do-you-have-apache2417"&gt;Do you have Apache/2.4.17+ ?&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;As far as I know, Debian hasn't put &lt;em&gt;Apache 2.4.18&lt;/em&gt; in their &lt;code&gt;stable&lt;/code&gt; repo yet, therefore you might want to upgrade your Debian server to a &lt;code&gt;testing&lt;/code&gt; version (I strongly recommend doing so, as you will get all your software up …&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Wed, 25 May 2016 00:00:00 +0800</pubDate><guid>tag:jm33.me,2016-05-25:/enabling-http2.html</guid><category>misc</category><category>http2</category><category>web</category><category>apache</category></item><item><title>Sh4d0ws0cks Over Obfsproxy (Scramblesuit)</title><link>https://jm33.me/sh4d0ws0cks-over-obfsproxy-scramblesuit.html</link><description>&lt;blockquote&gt;
&lt;p&gt;如果您看不懂英文，请点击&lt;a href="/shi-yong-obfsproxy-scramblesuit-hun-yao-sh4d0ws0cksliu-liang.html"&gt;这里&lt;/a&gt;以查看简体中文版本&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="get-obfsproxy-for-your-server"&gt;Get &lt;em&gt;obfsproxy&lt;/em&gt; for your server&lt;/h2&gt;
&lt;h3 id="tor-official-debianubuntu-repo"&gt;&lt;em&gt;TOR&lt;/em&gt; official Debian/Ubuntu repo&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;You can find your repo &lt;a href="https://www.torproject.org/docs/debian.html.en" title="Get your repo"&gt;here&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;For Debian Jessie users like me, simply add the following to your …&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Mon, 16 May 2016 00:00:00 +0800</pubDate><guid>tag:jm33.me,2016-05-16:/sh4d0ws0cks-over-obfsproxy-scramblesuit.html</guid><category>misc</category><category>Greatwall</category><category>obfsproxy</category><category>scramblesuit</category><category>DPI</category><category>censorship</category><category>openwrt</category><category>pi</category></item><item><title>Glowing Bear</title><link>https://jm33.me/glowing-bear.html</link><description>&lt;h2 id="get-certs-ready"&gt;Get certs ready&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Get Letsencrypt  with &lt;code&gt;git clone https://github.com/letsencrypt/letsencrypt&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Enter git directory, and &lt;code&gt;./letsencrypt-auto certonly -d &amp;lt;your domain&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Find your certs in &lt;code&gt;cd /etc/letsencrypt/live/&amp;lt;your domain&amp;gt;&lt;/code&gt;, you will see the following&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="certs" src="/img/certs.png"&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You will need to combine &lt;code&gt;privkey.pem&lt;/code&gt; and &lt;code&gt;fullchain.pem&lt;/code&gt;, fire up the …&lt;/li&gt;&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Mon, 09 May 2016 00:00:00 +0800</pubDate><guid>tag:jm33.me,2016-05-09:/glowing-bear.html</guid><category>misc</category><category>Misc</category><category>Glowing Bear</category><category>IRC</category><category>weechat</category><category>SSL</category></item><item><title>A Tour Of Go - My First Step To Golang</title><link>https://jm33.me/a-tour-of-go-my-first-step-to-golang.html</link><description>&lt;h2 id="basic-types"&gt;Basic Types&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;bool(true/false)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;string&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;int int8 int16 int32 int64 / and uint equivalences, uintptr&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;byte(alias for uint8)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;rune(alias for int32, represents a  Unicode code point)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;float32 float64&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;complex64 complex128&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="operators"&gt;Operators&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;:=&lt;/code&gt; is used to set a new variable without declaring it, like this
    &lt;code&gt;new_var := 1&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;&amp;lt;&amp;lt;&lt;/code&gt; is used to …&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Tue, 19 Apr 2016 00:00:00 +0800</pubDate><guid>tag:jm33.me,2016-04-19:/a-tour-of-go-my-first-step-to-golang.html</guid><category>Programming</category><category>golang</category><category>programming</category></item><item><title>使用Obfsproxy (Scramblesuit) 混淆sh4d0ws0cks流量</title><link>https://jm33.me/shi-yong-obfsproxy-scramblesuit-hun-yao-sh4d0ws0cksliu-liang.html</link><description>&lt;h2 id="obfsproxy"&gt;为您的服务器获取&lt;em&gt;obfsproxy&lt;/em&gt;&lt;/h2&gt;
&lt;h3 id="tor-debianubuntu"&gt;&lt;em&gt;TOR&lt;/em&gt; 官方Debian/Ubuntu软件源&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;可以在&lt;a href="https://www.torproject.org/docs/debian.html.en" title="Get your repo"&gt;这里&lt;/a&gt;找到您的软件源&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Debian Jessie用户请添加以下内容到 &lt;code&gt;/etc/apt/sources.list&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;deb&lt;span class="w"&gt; &lt;/span&gt;http://deb.torproject.org/torproject.org&lt;span class="w"&gt; &lt;/span&gt;jessie&lt;span class="w"&gt; &lt;/span&gt;main
deb-src&lt;span class="w"&gt; &lt;/span&gt;http://deb.torproject.org/torproject.org&lt;span class="w"&gt; &lt;/span&gt;jessie&lt;span class="w"&gt; &lt;/span&gt;main …&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jm33</dc:creator><pubDate>Sat, 16 Apr 2016 00:00:00 +0800</pubDate><guid>tag:jm33.me,2016-04-16:/shi-yong-obfsproxy-scramblesuit-hun-yao-sh4d0ws0cksliu-liang.html</guid><category>misc</category><category>Greatwall</category><category>obfsproxy</category><category>scramblesuit</category><category>DPI</category><category>censorship</category><category>openwrt</category><category>pi</category></item></channel></rss>