Võ Lê Anh Tuấn
Cybersecurity Ho Chi Minh City
I trace the attack path.
Cybersecurity student at Swinburne, and system administration and security at Got It. I moved through system administration and security into networks and SIEM, and now train toward offensive security — which means I read an attack path from both sides. Method first, evidence always, no inflated claims.
- Status
- Open to internship
- Focus
- Offensive security
- Foundation
- Network · SIEM
- Study
- Swinburne · 2023–2027
Tab completes · ↑ history · Ctrl+K fullscreen
01
Experience
Three internships and the degree running underneath them — each one a layer: the physical network, then the logs that describe it, then the operator who breaks it.
guest@vlat273:~$ cat experience.log
-
current
Got It
System Administration & Security
When my mentor moved on, I took over their remit: system administration, security and access control, and the users on top of them, in a live Microsoft 365 environment.
- Environment
- Microsoft 365 tenant · live users, no sandbox
- Owned
- System administration, security and access control, user accounts and ticket triage
- Output
- Working accounts and devices, hardened endpoints, resolved tickets
-
VNCS
Security Consultant Intern
Built and ran a distributed Splunk Enterprise lab — five log families onboarded and validated, then dashboards and alerts. Breakdown in case 001.
- Environment
- Distributed Splunk Enterprise — Deployment Server pushing config to universal forwarders across mixed hosts
- Owned
- Log onboarding, field extraction, time normalisation, dashboards, alerting
- Output
- Five log families in one searchable surface, plus POC documentation
Takeaway Ingestion is the easy half. A log nobody validated is a log that will lie to you in the middle of an incident.
-
VNPRO
Network Administrator Intern
Ran multi-VLAN production segments and the training lab behind them — routing, firewalls, VPN, ESXi, EVE-NG — with the runbooks and backups that keep it recoverable. Alongside that, asked for and received written approval to assess an internal web application: case 003.
- Environment
- Multi-VLAN production segments and the training lab behind them
- Owned
- Routing and switching, firewall and VPN configuration, ESXi hosts, EVE-NG topologies
- Also
- Authorised web application security assessment and code remediation — see case 003
- Output
- Runbooks, backups, restores, lab availability, remediation report
Takeaway Availability is a habit, not an event — a backup you have never restored from is just optimism with a timestamp.
-
expected
Swinburne University of Technology
Bachelor of Computer Science — Cyber Security
The degree runs underneath all three internships. Networking and routing first, then systems and security fundamentals, with the offensive side as the specialisation I am steering toward.
- Recognition
- Best in Performance Award — TNE20002 Network Routing Principles
- Studying
- Network routing, systems administration, security fundamentals
02
Work
Five case files. Three expand on an internship above; two are new. Open one to see the evidence, not just the headline.
001 Distributed Splunk & multi-source log onboarding One deployment, five log families, validated end to end — then dashboards and alerts someone would actually act on.
From my VNCS internship — full role summary in Experience.
Stood up Splunk Enterprise as a distributed deployment — a Deployment Server pushing config to universal forwarders across mixed hosts — then brought several log families into one searchable surface: Windows Event Log, Sysmon, Linux syslog, web application logs and firewall/syslog feeds.
Onboarding the data was the bulk of it: field extraction written by hand in
transforms.conf with regex where the shipped add-ons mis-parsed, custom
sourcetypes for the feeds no add-on covered, and everything normalised against the
Splunk Common Information Model so a field means the same thing no matter which host it
came from.
Then the work that made it useful: confirming events actually arrived, correcting extraction where sourcetypes mis-parsed, normalising time before anything was trusted, and building the reports, dashboards and alerts — routed to email and chat — that somebody would actually act on.
Scroll the diagram sideways to see all of it.
- Collect
- Parse
- Normalise
- Validate
- Stack
- Splunk Enterprise, Deployment Server, Forwarder Management, Universal Forwarders
- Parsing
- Hand-written
transforms.confextraction, regex, custom sourcetypes, Splunk CIM - Sources
- Windows Event, Sysmon, Linux, Oracle, firewall
- Output
- Dashboards, reports, alerts routed to email and chat
What it demonstrates Detection is downstream of data quality. The onboarding work — sourcetypes, extraction, time — is what decides whether the alert fires on the right thing. Normalising to CIM is what makes a search written once keep working when the next log source lands.
003 Authorised web application assessment — and the fixes Reproduced, root-caused and remediated three vulnerabilities in a production PHP CMS — including one the original report missed.
From my VNPRO internship — full role summary in Experience.
I was interning on the network side, not in security. When an external bug hunter reported two serious flaws in an internal admin panel, I asked the company for permission to work on it, got approval, and only then started testing.
The first two were a SQL injection that bypassed admin login outright, and an HTTP verb
tampering flaw that escalated privileges — the authorisation check was written against
GET while the application read its parameters from $_REQUEST, so
changing the request method walked straight past it. The third I found myself: the dashboard
echoed the raw username back into the page instead of reading it from the database, which
turned a logic mistake into a reflected XSS vector.
I also worked out that a far smaller payload than the original report used was enough to get in, and documented why — the login logic depended entirely on what the user typed, with nothing behind it.
- Reproduce
- Root cause
- Fix
- Re-test
- Found
- SQL injection (auth bypass) · HTTP verb tampering (privilege escalation) · reflected XSS
- Fixed
- Input sanitisation, removal of legacy default-password logic, explicit role checks, output encoding, method-pinned parameters,
.htaccesshardening - Verified
- Re-tested after deploying to production — 3 of 4 items closed, the remainder documented rather than dropped
- Rule
- Written authorisation before testing, sanitised before publishing
What it demonstrates That I can read the code that caused the flaw, not just run the tool that found it — and that I know to ask permission first.
004 This site — a terminal you can actually use No framework, no build step. A working virtual filesystem, tab completion, and a portrait drawn from 2,473 live glyph particles.
The page you are reading is itself the case study. There is no framework and no build step — it is plain HTML, one stylesheet, and hand-written JavaScript, which means it loads fast and there is nothing between you and the source.
The shell in the hero is real: a virtual filesystem with ls,
cd, cat and tree, fish-style ghost completion on
Tab, command history, and a fullscreen mode on Ctrl+K.
The portrait above the fold is 2,473 individual glyphs on a canvas — hover it and they
are pushed aside and spring back to their exact home position.
The portrait is a halftone: the artwork is decomposed into cells, one glyph per cell, tone carried by density rather than colour.
- Decompose
- Map
- Render
- Animate
- Stack
- Vanilla HTML, CSS and JavaScript — no framework, no bundler
- Engine
- Canvas 2D glyph field, positional particle model, fixed backing store
- Detail
- JSON-LD, OG/Twitter cards, manifest, self-hosted subset fonts, full no-JS fallback
- Verify
- View source — every line of it is right there
What it demonstrates Craft under constraint. Accessibility, no-JS resilience and performance were treated as requirements, not clean-up work.
005 Offensive security case files Where the CPTS work will live — enumeration, foothold, escalation, pivoting, and the report that ties it together.
Nothing goes up here that I cannot reproduce from an authorised lab. Every write-up is sanitised first — no flags, no credentials, no client data.
- Enumerate
- Foothold
- Escalate
- Report
- Track
- CPTS — Certified Penetration Testing Specialist
- Rule
- Authorised labs only, sanitised before publishing
- Status
- Building — first case files land as labs complete
What it demonstrates Discipline about what I put my name on. A case file with a flag in it is worth less than no case file at all.
03
Toolkit
Tools are secondary — thinking is the skill. But a capability without the tool that implements it is just a category, so every entry below names the tools and where I actually used them.
professional — used in a paid role lab — used in practice, not yet in production studying — actively learning
Offensive lab use
-
Enumeration
Service discovery, banner analysis, content discovery — finding the surface before touching it
- Nmap
- ffuf
- NetExec
-
Web testing
Request and response inspection, logic flaws, authorisation boundaries
- Burp Suite
- ffuf
-
Active Directory
Trust relationships, credential exposure, delegation, attack-path mapping
- BloodHound
- NetExec
- Impacket
- Kerbrute
-
Post-exploitation
Privilege escalation, pivoting and tunnelling, maintaining a clean trail of evidence
- Impacket
- NetExec
- BloodHound
-
Reporting
Reproducible steps, honest impact, severity that survives a second opinion
- Markdown
- Evidence discipline
-
Remediation
Ordering fixes by what actually reduces risk, not by what is easiest to fix
- Prioritisation
- Defensive mapping
Foundations professional
-
Networking
VLAN design, routing and switching, firewall policy, VPN, wireless
- Cisco IOS
- VLAN
- Firewall
- VPN
-
SIEM & detection
Splunk Enterprise, SPL, Deployment Server, universal forwarders, dashboards, alerting
- Splunk Enterprise
- SPL
- Sysmon
-
Systems
Linux and Windows administration, virtualisation, lab topology building
- Linux
- Windows Server
- VMware ESXi
- EVE-NG
-
Identity & cloud
Microsoft 365 administration — accounts, access control and the security around them
- Microsoft 365
- Access control
-
Scripting
Enough automation to stop repeating myself, and to read someone else's script before running it
- Bash
- PowerShell
- Python
-
Practice
Documentation, backups and restores, troubleshooting when the clock is running
- Runbooks
- Change notes
Certification track
- CPTSCertified Penetration Testing Specialist · OffSecin progress
- No certification claimedIf it is not held, it is not on this page. That is the rule.by policy
Currently studying
- Active Directory attack pathsDelegation, trust abuse, credential exposuredeepest focus
- Web application securityAuthorisation logic, server-side flaws, request smugglingongoing
- Detection engineeringTurning log sources into alerts worth waking up forongoing
Working set
- Nmap
- ffuf
- Burp Suite
- NetExec
- BloodHound
- Impacket
- Kerbrute
- Wireshark
- SPL
- Bash
- PowerShell
- Python
- Linux
- Windows Server
- Cisco IOS
- VMware ESXi
- EVE-NG
- Microsoft 365
04
Let’s exchange signals.
Open to internship and junior roles in security operations, SOC or offensive security — and to lab collaboration with people who take notes.
Authorised labs only Responsible disclosure No unverified claims